基于本文回答

播面 播面

文图音视,全方位拆解八股文
0
评论

SSRF(服务器端请求伪造)的危害是什么?

知识点图片

SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。

简单来说,攻击者借用服务器的身份,去访问攻击者自己无法直接访问的目标。

SSRF 的危害非常大,因为它不仅能泄露信息,往往还能作为进一步渗透内网的跳板,甚至直接导致服务器被接管。以下是 SSRF 的主要危害:

1. 内网探测与端口扫描 (Internal Reconnaissance)

服务器通常位于防火墙之后,拥有访问内网的权限。攻击者利用 SSRF 可以:

  • 扫描内网 IP: 探测内网中存活的主机。
  • 扫描端口: 探测内网服务开放的端口(如 22, 80, 443, 3306, 6379 等),从而了解内网架构和服务分布。
  • 指纹识别: 获取内网服务的 Banner 信息,识别软件版本,寻找已知漏洞。

2. 攻击内网脆弱服务 (Attacking Internal Services)

许多内网服务(如 Redis, Memcached, Elasticsearch, MongoDB 等)出于便利性考虑,往往没有开启认证配置了弱口令,且只允许本地(Localhost)或内网访问。

  • Redis 攻击: 利用 gopher://dict:// 协议构造特殊请求,攻击内网 Redis,写入 SSH 公钥或计划任务(Cron),从而获取服务器 Shell(RCE)
  • FastCGI / PHP-FPM: 攻击内部的 FastCGI 端口,执行恶意 PHP 代码。
  • Struts2 / JBoss / WebLogic: 触发内网未修复的旧漏洞,导致远程代码执行。

3. 获取云服务器元数据 (Cloud Metadata Leakage) —— 极高危

这是在云环境(AWS, 阿里云, GCP, Azure)中最常见的致命攻击。云主机通常通过一个特定的内部 IP(如 169.254.169.254)来获取实例的元数据。

  • 攻击者访问 http://169.254.169.254/latest/meta-data/
  • 后果: 可以获取临时的 Access Key ID 和 Secret Access Key
  • 影响: 攻击者利用这些凭证可以接管整个云账号,操作对象存储(S3)、数据库,甚至创建新的挖矿实例。

4. 读取本地敏感文件 (Local File Inclusion)

如果服务端程序支持 file:// 协议,且未做严格过滤,攻击者可以读取服务器本地文件。

  • 例如:file:///etc/passwd(查看用户列表)、file:///etc/hosts(查看内网映射)、file:///proc/net/arp(查看内网 ARP 表)。
  • 甚至可以读取应用程序的源代码或配置文件(获取数据库密码)。

5. 绕过防火墙与访问控制 (Bypassing ACLs)

很多应用或管理后台设置了 IP 白名单,只允许 127.0.0.1 或内网 IP 访问。

  • 由于请求是由服务器本身发起的,防火墙会认为这是“可信流量”。
  • 攻击者利用 SSRF 可以访问这些受限的管理界面(如 Tomcat Manager, WebLogic Console 等)。

6. 拒绝服务攻击 (DoS)

攻击者可以让服务器去访问超大文件或不仅存在的资源,导致服务器资源耗尽。

  • 带宽消耗: 让服务器下载超大文件。
  • 连接耗尽: 让服务器向无响应的 IP 发起大量请求,占用连接池。

总结:SSRF 的核心逻辑

SSRF 的本质是信任边界的滥用

  • 攻击者视角: 我进不去内网,但服务器在内网。
  • 利用方式: 我骗服务器帮我发请求。
  • 最终结果:
    1. 信息泄露(云凭证、源码、内网拓扑)。
    2. 内网漫游(当跳板机)。
    3. 权限获取(通过 Redis/FastCGI 等服务拿 Shell)。

常见利用协议

除了 HTTP/HTTPS,SSRF 往往结合以下协议造成更大危害:

  • file://:读文件。
  • gopher://:万能协议,可伪造任意 TCP 数据流(攻击 Redis、MySQL 的利器)。
  • dict://:操作 Redis 等服务。
  • ftp:// / sftp://:网络连接测试或文件操作。
00:00
00:00