SSRF 漏洞绕过方法
1. IP 地址绕过
服务器为了防止内网探测,通常会限制请求的目标IP,比如禁止访问私有IP地址(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.1)。我们可以尝试一些技巧来绕过这些限制
- 十进制、八进制、十六进制等进制转换:
- 十进制:
http://127.0.0.1可以转换为http://2130706433 - 八进制:
http://127.0.0.1可以转换为http://0177.0.0.1或http://017700000001 - 十六进制:
http://127.0.0.1可以转换为http://0x7f000001 - 混合进制: 例如
http://0x7f.0.0.1 - 域名解析:
localhost可以解析为127.0.0.1 - 不完整 IP: 某些系统会把
127.1当作127.0.0.1处理
- 十进制:
- 短地址服务或域名重定向:
- 攻击者可以利用短地址服务(如 bit.ly)或自己搭建一个网站,设置 302/307 重定向,将请求从白名单域名重定向到内网地址。例如,设置一个
http://trusted.com/redirect,当服务器请求此地址时,会自动跳转到http://192.168.1.1 - 这种方法常用于目标服务器只允许访问特定白名单域名的情况
- 攻击者可以利用短地址服务(如 bit.ly)或自己搭建一个网站,设置 302/307 重定向,将请求从白名单域名重定向到内网地址。例如,设置一个
- 利用 IPV6 地址绕过:
- 如果目标系统没有对 IPv6 地址进行过滤,那么
::1就可以指向127.0.0.1
- 如果目标系统没有对 IPv6 地址进行过滤,那么
- 利用
xip.io或类似服务:xip.io是一个将 IP 地址嵌入域名的服务。例如,10.0.0.1.xip.io会解析为10.0.0.1。如果服务器只限制了 IP,但未限制域名解析,这会是有效的绕过方法