Files
Sec-Interview/Chapter10/10-3.md
T
2025-09-25 03:52:44 +08:00

47 lines
3.1 KiB
Markdown

### SSRF 漏洞利用方式
**1. 端口扫描**
这是最基础也最常见的利用方式。通过控制服务器向内网 IP 的不同端口发起请求,并根据响应时间、响应内容或 HTTP 状态码来判断端口是否开放
- **利用方式:**
- **GET 请求:** `http://192.168.1.1:22`
- **响应判断:** 如果端口开放,通常会有 HTTP 响应;如果端口关闭或服务不存在,请求会超时或返回连接失败。通过脚本自动化这个过程,可以快速绘制出内网的端口图
**2. 访问内网应用**
如果服务器能够访问内网,攻击者就可以通过SSRF漏洞来探测和攻击那些通常无法从外部网络访问的应用
- **利用方式:**
- **访问管理后台:** 很多公司的内部管理系统、OA、数据库管理工具等都在内网运行。攻击者可以通过SSRF 漏洞直接访问这些后台,如果存在弱口令,就可能直接接管系统
- **攻击内网服务:** 利用 SSRF 访问内网中的 Redis、MySQL、Elasticsearch、Memcached 等服务。例如,利用 **Gopher 协议** 攻击 Redis 服务器,可以写入 Webshell 或者 SSH key,从而获得服务器的控制权
- **示例:** `gopher://127.0.0.1:6379/_*2%0D%0A$4%0D%0Ainfo%0D%0A` 这个 payload 可以向本地的 Redis 服务发送 `info` 命令,获取 Redis 信息
- **利用 `file://` 协议:** 如果没有协议限制,可以直接读取服务器本地文件,如 `/etc/passwd``/etc/hosts``.bash_history` 等,从而获取敏感信息
- **示例:** `file:///etc/passwd`
**3. 攻击本地文件包含(LFI)**
在某些场景下,SSRF 可以与文件包含漏洞结合利用。例如,当目标网站的 URL 处理逻辑是 `file=http://example.com/a.txt` 时,你可以将 `http` 替换为 `file`,从而实现本地文件读取
- **利用方式:**
- `http://target.com/?url=file:///etc/passwd`
**4. 绕过防火墙**
许多 Web 应用服务器会部署在防火墙后面,防火墙通常只允许特定的出站请求。SSRF 漏洞可以利用服务器作为跳板,绕过防火墙的限制,直接攻击内网
**5. 探测云服务元数据**
在云服务环境(如 AWS, Google Cloud, Aliyun)中,服务器通常有一个特殊的元数据地址,例如 **`http://169.254.169.254/`**。这个地址只在虚拟机内部可访问,其中包含了非常敏感的信息,比如 **IAM 角色凭证、密钥、实例信息**等
- **利用方式:**
- `http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name`
- 通过 SSRF 漏洞访问这个地址,攻击者可以获取临时密钥,利用这些密钥就能以该角色的权限访问云服务,比如操作 S3 存储桶、启动或停止虚拟机等,造成巨大的安全风险
**6. DoS 攻击**
攻击者可以利用 SSRF 漏洞让服务器向自身或内网中的关键服务发起大量的请求,从而造成拒绝服务
- **利用方式:**
- `http://localhost:80`
- 通过循环请求 `http://localhost/`,可以耗尽服务器资源,使其无法正常提供服务