### 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/`，可以耗尽服务器资源，使其无法正常提供服务