Ctfhub解题 web SSRF
介绍:记录解题过程
SSRF
其全称 :Server—Side Request Forgery :服务器端请求伪造
是一种由攻击者构造形成的由 服务器端发起请求的一个安全漏洞。一般情况下,攻击的目是外网没有办法访问的内网。
很多WEb应用都其提供了从其他服务器上获取数据的功能,使用指定的url,web 应用可以获取图片,下载文件,读取文件等。这个功能如果被恶意使用,可以利用存在缺陷的web引用做为代理,攻击远程和本地服务器。
原理:
服务端提供了从其他服务器应用获取数据的功能,且没有对目标地
址做过滤与限制
1.内网访问
尝试访问位于127.0.0.1的flag.php吧
- 访问得到flag
?url=127.0.0.1/flag.php
2.伪协议读取文件
尝试去读取一下Web目录下的flag.php吧
- 访问并查看源码得到flag
?url=file:///var/www/html/flag.php
3.端口扫描
来来来性感CTFHub在线扫端口,据说端口范围是8000-9000哦,
- BurpSuite端口扫描
2. 添加payload
- 得到开发端口
- 访问得到flag
4. URL Bypass
请求的URL中必须包含http://notfound.ctfhub.com,来尝试利用URL的一些特殊地方绕过这个限制吧
当后端程序通过不正确的正则表达式(比如将http之后到com为止的字符内容,也就是http://notfound.ctfhub.com,认为是访问请求的host地址时)对上述URL的内容进行解析的时候,很有可能会认为访问URL的host为http://notfound.ctfhub.com,而实际上这个URL所请求的内容都是127.0.0.1上的内容。
payload:
?url=http://notfound.ctfhub.com@127.0.0.1/flag.php
5.数字IP Bypass
这次ban掉了127以及172.不能使用点分十进制的IP了。但是又要访问127.0.0.1。该怎么办呢
8进制格式:0177.00.00.01
16进制格式:0x7f.0x0.0x0.0x1
10进制整数格式:2130706433
在linux下,0代表127.0.0.1,http://0进行请求127.0.0.1
?url