在当今的Web安全领域,SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一个极具威胁性的漏洞类型。它允许攻击者“借刀杀人”,利用服务器的身份发起任意网络请求,从而探测内网服务、读取本地文件,甚至实现远程代码执行。

然而,随着安全意识的提升,越来越多的系统开始对SSRF进行防御,其中最常见的手段就是对目标IP地址进行黑名单或白名单过滤。面对这种限制,许多初学者会陷入“无法探测内网”的困境。本文将深入剖析在SSRF漏洞利用中,当IP被限制时的多种绕过技巧与实战方法,助你在渗透测试中突破防线。
SSRF与IP限制:攻防对抗的起点
什么是SSRF?
SSRF漏洞的核心在于:服务器未对用户提供的URL参数进行严格校验,导致攻击者可以构造恶意URL,让服务器向内网或其他敏感地址发起请求。
常见的IP限制方式
开发者通常采用以下方式防御SSRF:
黑名单过滤:禁止请求
127.0.0.1、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16等私有IP段。正则匹配:通过正则表达式检测URL中是否包含内网IP。
域名白名单:仅允许访问指定域名。
但这些防御手段往往存在可被绕过的“缝隙”。
实战绕过技巧:8种方法突破IP限制
以下是经过实战验证的SSRF绕过IP限制的常用方法,适用于端口探测、服务指纹识别等场景。
1. @符号绕过(URL解析规则)
原理:在URL中,@ 符号用于分隔用户名和密码。如果格式为 http://user:pass@host,则 @ 后的 host 才是实际访问的目标。
绕过技巧:
即使目标系统要求URL必须以 http://notfound.ctfhub.com 开头,加入 @127.0.0.1 后,服务器最终会访问 127.0.0.1 的8080端口。
✅ 适用场景:目标系统仅校验URL前缀,未正确解析URL结构。
2. IP地址进制转换
原理:IP地址本质是32位二进制数,可转换为十进制、十六进制、八进制等形式。
示例:
127.0.0.1可表示为:十进制:
2130706433十六进制:
0x7f000001八进制:
017700000001
绕过技巧:
✅ 适用场景:正则仅匹配点分十进制格式(如
\d+\.\d+\.\d+\.\d+)。
3. Enclosed Alphanumerics 绕过
原理:使用Unicode编码的数字字符,如 ①、②、③ 等,绕过纯ASCII数字的检测。
示例:
127.0.0.1→①②⑦.⓿.⓿.①
绕过技巧:
✅ 适用场景:系统使用简单字符串匹配或ASCII正则,未处理Unicode编码。
4. DNS重绑定(DNS Rebinding)
原理:利用DNS解析的TTL(生存时间)机制,在第一次解析时返回公网IP(绕过检测),第二次解析时返回内网IP(实现攻击)。
工具推荐:
rbndr.us:提供DNS重绑定服务。
自建DNS服务器,配置短TTL和多IP返回。
操作流程:
注册
yourdomain.rbndr.us。配置其DNS解析先返回
8.8.8.8,再返回127.0.0.1。在SSRF请求中使用:
http://yourdomain.rbndr.us:8080/
✅ 适用场景:系统仅在请求前校验一次域名IP,不持续监控。
5. 302跳转绕过
原理:服务器先请求一个跳转地址,再跟随重定向到目标内网地址。
PHP示例代码:
绕过技巧:
构造一个公网URL,返回
302 Found并指向http://127.0.0.1:8080/。SSRF请求该公网URL,服务器会自动跳转至内网。
✅ 适用场景:服务器支持HTTP重定向,且未禁止跳转到内网。
6. xip.io 域名绕过
原理:xip.io 是一个动态DNS服务,会将子域名解析为对应IP。
示例:
绕过技巧:
✅ 适用场景:系统允许域名访问,但过滤IP地址。
7. 特殊符号替换
原理:使用非标准字符替代 . 或使用 localhost。
绕过技巧:
使用全角句号:
http://127。0。0。1/使用
localhost:http://localhost:8080/使用
0.0.0.0:某些系统中等价于localhost
⚠️ 注意:现代解析器通常会拒绝全角符号,但仍有部分旧系统存在漏洞。
8. 短网址服务绕过
原理:将目标内网地址转换为短链接,绕过原始URL检测。
工具推荐:
https://tinyurl.comhttps://is.gdhttps://985.so
操作流程:
将
http://127.0.0.1:8080/生成短链,如https://tinyurl.com/abc123。在SSRF中请求该短链。
✅ 适用场景:系统未对短链进行反向解析或黑名单。
防御建议:如何有效防范SSRF绕过?
作为开发者,应采取以下措施:
使用白名单机制:仅允许访问可信域名或IP。
禁用危险协议:如
file://、gopher://、dict://等。统一URL解析:使用标准库解析URL,避免自定义正则。
限制端口范围:只允许常见端口(80、443)。
部署WAF:使用Web应用防火墙识别异常请求模式。
禁用重定向:在服务端请求中禁止自动跳转。
SSRF漏洞的攻防本质上是解析逻辑的博弈。攻击者利用URL解析、DNS机制、编码转换等“灰色地带”绕过检测,而防御者则需构建更严谨的校验体系。
在实际渗透测试中,面对IP限制的SSRF,应尝试:
优先使用@符号、进制转换、xip.io 等简单方法;
若无效,考虑 DNS重绑定或302跳转 等高级技巧;
始终结合目标环境特性,灵活组合多种绕过方式。
🔐 安全提醒:本文内容仅用于合法渗透测试与安全研究,请勿用于非法用途。





















