ctfshow-web入门WP
信息搜集
web1
右键查看源代码即可
web2
没法直接按F12用开发者工具,下面列举几种方法
-
改协议名字为view-source:
-
快捷键ctrl + u
-
ctrl + shift + i也可以打开开发者工具
-
使用开发者工具查看网络response结果获取flag
web3
开发者工具network抓包查看http协议头里面有个flag协议头,提交即可
web4
总有人把后台地址写入robots,帮黑阔大佬们引路
robots.txt可以查看网站的君子协定
web5
先尝试index.php(首页),没什么反应
再尝试index.phps,可以把它下载下来,然后审计代码
phps源码泄露
web6
常见的源码包名字:www.zip
先进入该路径,下载www.zip后解压,然后可以发现里面有.txt文件和.php文件,先点开.txt文件,提交里面的flag,发现提交失败
这是因为源码包里面的内容,业主方是可以任意修改的,而真正不能修改的内容和敏感文件,则会藏在系统目录里面
所以我们这边打开文件夹中的.php文件,按照里面的提示找到网站的fl000g.txt文件即可
web7
.git作用:
-
多人协作
-
版本控制
由于.开头的文件中不可见,所以开发人员可能没注意到这个文件,误把它部署到了网站中,造成泄露
本题直接找根目录下的.git文件即可
版本泄露
web8
.svn也是版本控制文件,做法同web7
web9
首先尝试index.php(首页),没有反应,于是尝试index.php.swp(交换文件),便可以进行下载
文件里面就有flag
web10
按照题目提示直接看网页cookie
再把cookie值进行URL解码,即可获取flag
web11
使用域名解析查询网站,查询ctfshow.com的Txt记录
web12
直接先尝试一下管理员地址 /admin,需要密码
有限尝试admin和123456这样的密码,发现没什么用
所以在网站上找一下信息
像一些.edu网站,一个学校的多个学院可能都有单独的后台,所以管理员密码可能会设置相对好记的,就有可能使用这种网站上的公开信息
web13
题目中提到了技术文档中含有隐藏信息,所以我们在靶场网站上找找看,在网站的最下面

可以看到第三列中,有一个document,它的首字母是小写的,而同列的其他英文首字母均为大写,显得特殊
更重要的一点是它是个链接,可以点的
点进去之后是一个PDF文档,里面便有我们想要的后台地址,以及管理员账号密码

按照内容进入后台即可获得flag
web14
题目提示源码泄露,所以直接ctrl + u看源码
又提到了editor,所以我们ctrl + F一下
可以找到一个路径

所以我们跳到原网址的/editor目录
(一些政府机关有关领导讲话的简报,上面图片的路径可能就来自于编辑器)

这上面的附件按钮即可上传文件

可以看到里面有文件空间
进去后直接找浏览器的文件夹:var/www/html

nothinghere多少有些”此地无银三百两“的意味了
所以我们点开,里面有个.txt文件

观察该路径:/editor/attached/file部分是编辑器路径
而后面的/var/www/html则是浏览器路径
而我们是在原网页的基础上进行的查找,所以我们需要截取后面的nothinghere/fl000g.txt部分
即可获取flag
web15
看到一个网站先考虑能不能进到它的/admin后台
按照题目提示,可以在网站最下边找到一个QQ邮箱,不管别的,先记下来
然后尝试进一下后台
输入账号admin,密码试一下QQ邮箱,发现不正确

看到下边有个忘记密码,密保问题是居住地
我们就可以上QQ查一下这个QQ号的居住地在哪里,发现是在西安
回答后提示已重置
重新登录即可
一道社工题
web16
进去后,按照题目提示优先尝试探针默认路径tz.php

可以注意到导航栏里面的一些功能
先尝试一下函数的检测,输入system,发现system支持,但是一旦system里面加了命令就不支持
再试一下mysql的检测,root 1234,输进去,发现连接正常,但是并没有什么用
再次遍历页面,发现PHP参数里有个phpinfo可以用,所以我们点进去康康
最后可以发现里面有flag

(我绝对没有截屏的时候误按了大写锁定键!)
web17
有题目可知flag在备份的sql文件里,找backup.sql即是备份的SQL文件
web18
游戏类的题目直接看源码即可,找到当获胜时会给的内容进行分析
本题看源代码,点下面那个js链接进去
可以看到当分数大于100时会有个值
\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b
可以明显看出来是unique代码,所以直接在网页的控制台进行解码即可
输入以下内容:
alert("\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b");
让我们去110.php看一下,听他的,即可获得flag
web19
AES加密

只要前端是以下哈希值即可通过

这里用hackbar来绕过前端
即用post方法发送哈希值
注意绿色部分是注释,真正的变量在上面的html代码中
发送即可获得flag
web20
数据库文件一般放在db目录
mdb文件则是以mdb为后缀的文件
所以尝试db.mdb,data.mdb
发现db.mdb可以,即可获得一个.mdb文件,之后利用数据库查看器即可查询里面的数据信息(因为自己的数据库工具打不开只好用官方的图辣)

最后在ItemText字段即可找到我们要的flag
爆破
web21
打开BP代理准备抓包
在页面输入账号admin和密码123并提交,即可获得如下信息

图中选中部分就是我们的认证请求
易知是base64编码,解码后就是我们提交的账号密码
admin:123
接下来就是对这里进行爆破,在intruder中选中该字符串后,进入设置,载入题目提供的字典
添加前缀admin: 和进行base64编码

之后在setting中设置文本配对:ctfshow

开始attack!

最别致的状态码200!
内容里就有flag了

web22
找一个在线的查子域网站即可,然后按照题目要求查ctf.show,在众多结果中,我们可以很明显地看到有几个特别短的,也就是ctfshow的官方网站,挨个点来看,最后发现在vip.ctf.show的界面,把鼠标悬停在该浏览器的标签页上面,会弹出flag{ctf_show_web}
web23
这道题我连视频都看不懂思密达
(无奈,只能跳题了)
web24
审计代码
mt_srand(372619038);
上面这行代码用于生成随机数种子
web25
web26
web27
命令执行
web29
error_reporting(0)可以屏蔽错误
执行phpinfo()可以查看php版本信息
(注意:如果执行的是PHP代码,后面应该加上分号)
文件包含
web78
进入后打开hackbar

使用hackbar的自带PHP伪代码
直接伸手要flag

把执行后的base64编码用hackbar解码即可获得flag
PHP特性
web89

审计代码,不能有0~9,而且intval函数要求后面为正数
所以这里尝试数组绕过

执行即可获得flag

浙公网安备 33010602011771号