跳过内容

C10:阻止服务器端请求伪造

描述

虽然注入攻击通常针对受害服务器本身,但服务器端请求伪造(SSRF)攻击试图强制服务器代表攻击者执行请求。当攻击者能够欺骗服务器向内部或外部服务发出非预期的请求时,就会发生SSRF,这可能绕过安全控制。

为什么这对攻击者有利?传出请求将以受害服务器的身份执行,因此攻击者可能会以更高的权限执行操作。

威胁

例如

  • 如果DMZ(非军事区)内的服务器可能遭受SSRF攻击,攻击者可能无需通过边界防火墙即可访问DMZ内的其他服务器
  • 许多服务器在localhost上运行本地服务,通常作为localhost不进行任何认证/授权。这可能被SSRF攻击滥用。
  • 如果使用SSO(单点登录),SSRF可用于从服务器等提取令牌/票据/哈希。

实施

有多种方式可以防止SSRF

  • 输入验证
  • 如果必须发出传出请求,请根据允许列表检查目标
  • 如果使用XML,请安全配置解析器以防止XEE(XML外部实体攻击)

在执行输入验证时,请注意Unicode和其他字符转换

防止的漏洞

参考资料

工具