SSRF绕过:
靶场地址:重庆橙子科技SSRF靶场
这个是毫无过滤的直接读取,但是一般网站会设置有对SSRF的过滤,比如将IP地址过滤。
下面是常用的绕过方式:
1.环回地址绕过
http://127.0.0.1/flag.php
http://017700000001/flag.php #八进制
http://0x7F000001/flag.php #十六进制
http://2130706433/flag.php #十进制
发现题目出现过滤,直接进行IP的进制转换。
直接搞定。
2.重定向绕过
302重定向绕过是指一种安全漏洞,通常出现在Web应用程序中,可以被恶意用户利用来绕过预期的访问控制或执行非授权的操作。这种漏洞的本质在于应用程序对302状态码的处理不当,导致攻击者可以通过重定向来引导用户到他们控制的恶意网站或执行其他未授权的操作。
重定向绕过分为两种:
-
开放重定向漏洞(Open Redirect):在这种情况下,应用程序允许用户控制重定向的目标URL,但没有进行足够的验证和过滤。攻击者可以构造一个特殊的URL,将用户重定向到恶意站点,从而进行钓鱼攻击或窃取用户信息。
-
闭合重定向漏洞(Closed Redirect):虽然应用程序限制了重定向的目标URL,但攻击者可以利用不同的方式绕过此限制。例如,通过在URL中添加参数或混合使用URL编码和解码来绕过输入验证。
如上图所示,这里对IP地址(进行了过滤,只要访问服务器的IP是127.0.0.1或者一眼内网IP,直接过滤掉,导致无法访问)
重定向绕过原理:
其实很简单,就是攻击者利用一台有公网IP的web服务器,然后在上面进行命令,然后302重定向到127.0.0.1,其实就是将SSRF这台服务器进行了一层利用或者跳板。
302重定向攻击代码
在自己web服务器上写入index.php
<?php
header('Location: http://127.0.0.1/flag.php');
然后打开php -s 0.0.0.0:7777,开启相应的服务,
提交后变成
直接识别出你的IP地址是222.183.24.10(公网IP)
3.DNS重绑定绕过
现在针对SSRF攻击的主流防御手段通常为:
1.解析目标URL,获取其Host
2.解析Host,获取Host指向的IP地址
3.检查IP地址是否为内网地址
4.请求URL
5.如果有跳转,拿出跳转URL,执行1
经过这整套流程过后:
可以有效限制:直接访问内网IP;302跳转;xip.io/xip.name 及短链接变换等URL变形;畸形URL;iframe攻击;IP进制转换
针对这种防御可以使用DNS Rebinding Attack(DNS重绑定攻击)
其实就是服务器进行两次DNS解析同一域名的间隔期间,(如果间隔期间比较长,而且有缓存,会有失败的概率)我利用这个空档直接更换我都IP,从而进行对WAF的绕过
DNS重绑定网站生成:rbndr.us dns rebinding service (cmpxchg8b.com)
A输入自己服务器的公网IP然后B是本地,就可以产生重绑定
直接拿到手。
希望本文能够帮助给位学习SSRF绕过攻击,谢谢!
文章参考:重庆橙子科技陈腾老师---<<SSRF学习>>