SSRF攻击:攻击者如何利用高危协议穿透内网?百度云防护规则4195精准拦截

你以为防火墙挡住了所有外部攻击?SSRF(服务器端请求伪造)却能让攻击者“借刀杀人”——利用你的服务器去攻击内网系统、读取本地文件、甚至拿下云主机元数据。当攻击者使用 file://gopher://dict://高危协议时,危害会成倍放大。百度云防护内置规则ID 4195 专门检测此类攻击,在网络层提前阻断。


一、 什么是SSRF?高危协议如何被利用?

1.1 SSRF攻击原理

SSRF(Server-Side Request Forgery)是指攻击者利用服务端代码中的URL请求功能(如 curlfile_get_contentsHttpClient 等),诱使服务器向攻击者指定的地址发起请求。这个地址可以是:

  • 内网敏感服务http://192.168.1.1/admin
  • 本地文件file:///etc/passwd
  • 云元数据接口http://169.254.169.254/latest/meta-data/
  • 其他协议gopher://dict://ftp://

1.2 高危协议及其危害

攻击者常利用以下协议绕过常规HTTP过滤,扩大攻击面:

协议示例危害
file://file:///etc/passwd读取服务器任意文件
gopher://gopher://192.168.1.1:6379/_*2%0d%0a$4...攻击内网Redis、MySQL等TCP服务
dict://dict://127.0.0.1:11211/stats探测内网服务信息
ftp://ftp://evil.com/恶意文件导致服务器主动下载恶意文件
jar://netdoc://特定语言扩展协议触发反序列化或任意文件读取

典型攻击链路

  1. 攻击者找到一处URL参数(如 ?url=http://example.com/image.jpg)。
  2. 将参数改为 gopher://内网IP:端口/_恶意TCP载荷
  3. 服务器对内网Redis发起请求,写入SSH公钥或反弹Shell。

二、 SSRF的危害:从内网探测到远程代码执行

危害等级具体后果
高危攻击内网数据库、缓存、消息队列,直接控制其他业务系统
严重读取云主机元数据(如AWS/阿里云/腾讯云的临时凭证),获得云API权限
中危端口扫描、服务指纹识别,为后续攻击铺路
信息泄露读取本地文件(配置文件、源码、密码)

真实案例:某知名社交平台曾因SSRF漏洞,攻击者利用 gopher:// 协议攻击内网Elasticsearch,窃取数亿用户数据。


三、 为什么传统WAF难以防御SSRF?

  • 协议变种多:攻击者可混合使用 http://https:// 与高危协议,或进行URL编码、双重编码绕过。
  • 正常业务需要:某些应用确实需要向第三方发起请求(如头像拉取、Webhook),简单封禁URL参数会误伤业务。
  • 缺乏上下文分析:传统WAF只检测请求参数中是否包含IP或域名,无法判断目标是否属于内网或使用了危险协议。

四、 百度云防护如何拦截?规则4195深度解析

从百度云防护内置规则库可以看到:

规则名称规则ID风险等级防护类型规则描述
SSRF.target_protocol.A4195中风险SSRF服务端请求伪造检测利用高危协议进行SSRF的Web攻击

4.1 检测原理

该规则不依赖简单的关键词黑名单,而是通过多层解码 + 协议特征识别 + 内网地址检测组合判断:

  1. 协议特征识别:自动检测请求参数(URL、Query、POST Body、Header)中是否包含 file://gopher://dict://ftp://jar:// 等高风险协议。
  2. 内网地址检测:若URL参数中出现内网IP段(如 10.0.0.0/8172.16.0.0/12192.168.0.0/16127.0.0.0/8)或云元数据地址 169.254.169.254,触发告警。
  3. 编码还原:自动解码 %66%69%6c%65%3a%2f%2f(即 file://)、双重编码、Unicode编码等混淆形式。

4.2 低误报设计

正常业务极少向 file://gopher:// 等协议发起请求,且很少主动请求内网IP或元数据地址。规则经过海量真实流量训练,误报率极低。若确有合法需求(如内部API调用),可通过白名单放行。


五、 如何启用百度云防护规则4195?

如果你已接入百度云防护WAF,只需两步:

  1. 登录控制台 → 防护配置Web防护内置规则
  2. 搜索规则ID 4195,确认状态为“开启”,动作为“拦截”

建议:首次可设为“观察”模式运行1-2天,确认无业务误报后再改为“拦截”。


六、 开发人员如何从源头修复SSRF漏洞?

除了依赖WAF,开发者应遵循以下安全编码规范:

  • 白名单校验:限制URL参数只能访问预先允许的域名或IP,禁止用户控制完整URL。
  • 禁用危险协议:使用 parse_url() 提取协议,只允许 httphttps
  • 内网IP黑名单:检查解析后的IP是否为内网地址或回环地址,若是则拒绝。
  • 使用安全库:如Java的 HttpClient 禁用重定向、限制超时。
  • 云元数据防护:在服务器层面配置防火墙规则,禁止向外请求 169.254.169.254

七、 主机吧总结:让SSRF“无路可走”

SSRF攻击利用的是服务器对用户输入的“信任”,而高危协议让这种信任变成了灾难。百度云防护规则4195通过协议识别+内网检测+多层解码,在攻击者尝试利用 gopher:// 打穿内网或 file:// 读取敏感文件之前,提前阻断恶意请求。

如果你还不确定自己的网站是否存在SSRF风险,或想为网站加上一道主动防御屏障,欢迎联系主机吧。我们提供免费安全评估和配置指导。


主机吧 | 百度云防护官方合作伙伴
提供WAF接入、高防CDN、高防IP、高防服务器、SSL证书一站式服务
让每一次SSRF都无处遁形,让每一台服务器都固若金汤。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧