ctfshow web入门 1-20

君叹   ·   发表于 2023-08-18 23:30:37   ·   CTF&WP专版

前言

看ctf竞赛入门指南这本书的时候,其中有一条如何提高效率是这样说的

1. 做好预研,收集相关前人成果,避免无谓的重复劳动

2. 在可行性判断阶段,能找到工具就不写代码,能用脚本语言就不用变易语言,把完美主义放在最终实现阶段

3. 做好笔记并定期整理,以往会让所有的投入都白白浪费

4. 多和同事交流,别人说一个工具的名字可能让你节约数小时

5. 处理好学习,工作和生活

6. 无论怎么提高效率,要成为专家都需要大量的时间投入

其他几条我目前没有很深的感触,但是第三条,感触太深了,一个月没碰,感觉跟啥也不会的一样,现在打算写一波ctf的wp,先把以前学会的东西拾起来,后续打算往代码审计这个方向走。
这也算是学习日记了。


信息收集篇

web1


开发注释未及时删除
前端代码是用户可以看到的内容
如果线上部署的代码存在注释
可能会泄露敏感信息
有些人可能会把诸如账号密码写进注释中

还有爬虫开发时
为了防止爬虫
网站可能会禁止查看网页源代码
诸如禁止 F12
禁止ctrl + u

这里给出几个我知道的查看前端源代码的方式
1 F12
2 CTRL + U
3 在url前面加上 view-source:
4 安装python,以及requests库

  1. import requests
  2. res = requests.get("url")
  3. print(res.text)

第一题直接F12即可


web2

用上面提到的其他三种方法都可以


web3

根据提示查看网页数据包
关于为什么要查看数据包
1 很多时候,数据包中的参数可能有一些能控制的东西,产生逻辑漏洞
2 可能有 xml ,可以尝试XXE(这里之前参加腾讯的一次竞赛,是个XXE,从头到尾没抓包看,,,)

这里一般来说,做web渗透的时候都会开着Burp,用burp截包看的更清楚做的操作更多
这里懒得开了
直接在这里看


web4

题目提示,总有人把后台地址写进 robots.txt 中
robots.txt 是一个爬虫协议
文件中规定了网站哪些页面允许爬取,哪些不允许爬
但这是一个君子协议
怎么说呢
在学习某个爬虫框架的时候
有一个参数是指定是否遵循 robots 协议
我们可以设置为 False

其作用,就像题目提示中说的
可能存在后台地址
同时
有可能正在开发的网页也会写在上面
虽然没公开,没测试过实用性,但是部署到了线上
会有很大可能存在漏洞


web5

phps源码泄露

这里摘取一段csdn上的解释


phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。

因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。用户访问phps文件就能看到对应的php文件的源码。

原文链接:https://blog.csdn.net/JY_Heart/article/details/129398872


访问即可获得源码文件
用记事本打开


web6

解压源码到当前目录
程序员在开发程序时,通常不会在服务器上去写
是在本地写好,然后上传到服务器测试
文件夹是没法直接传输的
所以一般习惯于打成一个压缩包传上去解压
这里的漏洞点在于
压缩包上传上去之后
没删除
能被任意用户访问到
能访问到就能下载

一般而言看个人习惯
有的人打包喜欢命名成
www.zip
web.zip
这些
所以通常可以通过目录扫描工具扫到
从而直接下载到网站的源代码

本题是 www.zip

访问 fl000g.txt
这里压缩包里的fl000g.txt不是真flag
可能是因为题目环境每次生成,flag都是随机的
所以没有固定flag
也就是在压缩包里的fl000g.txt中不能看到真的flag


web7

版本控制很重要,但不要部署到生产环境更重要
在程序员开发时
可能会用到 git, svn 等这些版本控制软件
可以用来回溯版本
可能我这个版本不小心出问题了
我要回退,就能直接回到上一个版本

如果用的是 git
会产生一个 /.git 的本地文件夹
里面存放这一些版本信息
程序历史版本的源码之类的

本题访问 .git 获得flag

在真实环境中
访问.git如果存在
需要通过一些工具去下载解析利用


web8


理论和上一题一样
但是这里用的是 svn


web9

vim缓存文件

当我们使用 vim 打开文件的时候
例如我们打开了 abc.txt
会产生一个
.abc.txt.swp 文件
我们对文件做的修改操作都会在这个文件中进行
当我们使用指令 w
保存的时候
会将更改后的内容覆盖原来的文件
当我们使用 q 退出的时候
会删除这个文件

题目说了,使用vim修改死机了
也就是没有正常退出vim
缓存文件就不会被删除

访问 .abc.txt.swp 下载缓存文件
同样,真实情况下也需要通过一些工具去利用

这里可能忘了加 . 了


web10

cookie 是用来验证用户身份登录的东西
很多用户身份参数会在cookie中
如果没有启用session
光是cookie的话
更改这些数据就可以更改我们的权限
或者获取一些其他敏感信息


web11

题目里说的很清楚了,略过


web12

往下翻翻到一个类似qq号的东西

目录扫描存在 /admin
猜测是后台地址
访问 /admin
弹出一个登录窗口

账户名使用admin(常用管理员账户)
密码使用那串数字

登录成功,拿到flag


web13

技术文档里不要存在敏感信息
部署到生产环境后及时修改

可以判断出来
这道题的话
先找到开发文档
开发文档里面写了默认账号密码
网站上线后没改密码

拉到最下面
有个文档按钮

点进去,有后台地址和默认的账号密码

实际场景
很多公司想要一个网站
但是自身没有程序员团队

就会找外包公司

外包公司写好网站之后
得整个使用教程给对方
不然怕对方不会用

有时候可能就会把账号密码和后台地址写进去
造成敏感信息泄露


web14

editor,是一个编辑器

我们访问 /editor
能够访问到编辑器的界面

这里点开文件空间
可以看到服务器的目录
虽然不能看到文件内容
但是可以看到目录结构也非常重要了
说不定就能认出来这是哪套cms
或者能够直接看到一个敏感信息文件的路径

这个editor就是一个工具
一个浏览器上的在线编辑器
像是我们发文章
用的也是类似的编辑器

找到 /var/www/html/nothinghere

直接访问这个文件


web15

公开的信息比如邮箱可能造成信息泄露
产生严重后果

一般来说可以钓鱼

这里网站拉到最下面找到邮箱

访问 /admin 找到后台

点击忘记密码

刚刚的邮箱可以看得出来
是一个qq邮箱
前面那串数字也就是qq号
尝试搜一下

在西安

输入在西安之后

密码重置

这里其实可以用另一种爆破的方法
城市名是有限的
创建一个所有城市的名字的字典去跑就可以了

这里用刚刚重置后的密码登录


web16

探针
一般探针可能会叫
tz.php

其中有phpinfo页面

ctrl+f 搜索 ctfshow

找到flag

看phpinfo是因为phpinfo中可以看到php的配置信息
有很多漏洞的利用和产生都跟版本和配置有关系


web17

数据库的备份文件
访问 backup.sql
backup翻译过来是备份的意思

用记事本打开也可以

可以看到其中的flag


web18

进来之后是个小游戏

尝试之后这玩意对我这种手残党有点难
ctrl + u 查看源代码

访问 js 文件

看到上图的代码
score 是分数
这里如果分数大于 100
执行下面那条语句

编码看起来像Uncode
解码一下那个里面的内容是什么
https://c.runoob.com/front-end/3602/

这里用了个谐音梗
去110.php看看
访问110.php

获得flag


web19


密钥什么的,就不要放在前端了

进去查看前端源代码

找到账号和密码加密后的结果

这道题的话,预期解应该是

通过js代码,得到密钥
var key = “0000000372619038”;
var iv = “ilove36dverymuch”;

然后解密
a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
这串
得到正确的密码

但是我们可以抓包,直接把正确的加密后的密码改进去


发包


得到flag


web20


mdb文件是早期asp+access构架的数据库文件 直接查看url路径添加/db/db.mdb 下载文件然后用记事本打开

搜索flag


用户名金币积分时间理由
Track-魔方 400.00 0 2023-09-07 20:08:09 深度 100 普适 200 可读 100

打赏我,让我更有动力~

0 条回复   |  直到 2023-8-18 | 369 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.