SSRF(服务器端请求伪造)攻击详解与防御指南

什么是 SSRF?

SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一种由攻击者构造请求,诱使服务端发起内部或外部请求的攻击方式。攻击目标通常是 内网服务、云元数据接口、其他受信主机

SSRF 的核心特点:

  • 发起请求的是服务器,而非用户;
  • 攻击者可以利用它访问本不应该暴露的内部资源;
  • 常发生在服务端允许用户提供 URL 的功能中(如头像抓取、Webhook、RSS 订阅等)。

SSRF 攻击条件

  • 应用中有 “服务端请求 URL” 的功能,如:

    • 图片抓取
    • 在线转码
    • RSS 订阅
    • Webhook / 回调通知
    • PDF 导出
    • 任意 URL 下载、预览等功能
  • 服务端未对 URL 做 协议、地址、端口、跳转 等有效限制。


SSRF 攻击分类与技巧

一、按请求协议分类

类型协议示例用途
基础 SSRFhttp, https访问内网系统、探测服务
文件 SSRFfile://读取本地文件内容
命令注入型 SSRFgopher://构造协议指令,如 Redis 命令注入
模糊探测型 SSRFdict://, ftp://探测服务响应行为或类型
DNS 重绑定 SSRF域名绕过绕过白名单访问内网地址

二、按访问目标分类

  1. 攻击内网服务(最常见)
http://127.0.0.1:8000/admin
http://192.168.1.1:8080/status

攻击意图:

  • 探测开放端口
  • 越权访问 Web 管理界面
  • 利用弱口令登录(与爆破结合)
  1. 云环境元数据窃取
http://169.254.169.254/latest/meta-data/

云平台凭证泄露 → 远程控制云主机(EC2、ECS、GCE 等)

  1. 向 Redis 注入命令

利用 gopher:// 构造请求,发送原始 TCP Payload:

gopher://127.0.0.1:6379/_%0D%0ASET%20x%20hacked%0D%0A

或写入定时任务/公钥实现远程命令执行。

  1. 与 DNS 重绑定结合
  • 域名前解析为外网 IP,验证通过
  • 稍后解析为内网 IP,完成访问
http://trusted.example.com -> [8.8.8.8] -> [127.0.0.1]
  1. SSRF to RCE(综合利用)

通过 SSRF 实现:

  • 内部系统弱点 RCE
  • Redis/Flask Pickle 注入
  • 内部 REST API 泄露密钥 → 命令执行

SSRF Payload 示例大全

目标Payload 示例
探测本地服务http://127.0.0.1:80
访问云元数据http://169.254.169.254/latest/meta-data/iam/security-credentials/
Redis 命令注入gopher://127.0.0.1:6379/_%0D%0ASET%20test%20hello%0D%0A
文件读取file:///etc/passwd
内网探测http://192.168.0.1:22
跳转绕过http://evil.com/redirect?url=http://127.0.0.1:80

⚠️ 注意:需要结合具体功能点调试 Payload,部分协议或跳转可能被服务器或 WAF 限制。


SSRF 防御措施(系统化)

层级防御措施
应用层严格限制 URL 协议、地址、端口,使用地址白名单
网络层防火墙禁止对内网、169.254.0.0/16 等特殊网段发起请求
逻辑层添加签名校验、Token 验证、防止用户控制 URL
响应层禁止将敏感接口直接暴露,内网服务需鉴权
日志监控记录请求地址、频率,监测异常访问模式

推荐 SSRF 靶场练习


一句话总结

SSRF 是一种“服务器替攻击者打洞”的攻击,真正的防御在于 彻底隔离请求权限边界

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你好我是小美

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值