注:本文是一篇翻译文章,原文链接:https://medium.com/@vickieli/bypassing-ssrf-protection-e111ae70727b

当在Web应用程序中找到一个可以获取的外部资源的功能。你可以从各种外部站点读取内容,并且可以请求的文件类型不会有任何限制,应用程序会立即显示所有内容。这个现象告诉你,接下来该尝试一下是否存在SSRF漏洞了。所以你开始输入:127.0.0.1。但是仅过了一秒钟,服务器返回了一个意想不到的响应:

Error. Requests to this address are not allowed. Please try again.

所以现在该做什么?

SSRF保护机制

企业确实意识到了SSRF攻击的风险。所以大多数人已经在他们的Web应用程序中实现了某种形式的SSRF保护。SSRF保护机制基本上分两种:黑名单和白名单。

黑名单指的是如果接收到的输入为列在黑名单上的地址,那么不允许这些地址且阻止请求的处理。大多数SSRF是采用的黑名单来保护不允许探测内网IP地址段。

另一方面,白名单指的是服务器只允许接收处理在预先设定好的白名单列表里包含的URL的请求,并使得其他请求处理失败。

绕过白名单

白名单通常更难绕过,因为默认情况下相对于黑名单而言,白名单更加严格。但是如果白名单中的域中存在开放的重定向漏洞,则可能存在SSRF漏洞。

如果您可以找到可利用的重定向漏洞,则可以请求重定向到内部IP地址段的白名单中的域。

如果没有正确利用白名单(例如,使用了设计不好的正则表达式),那么也可以通过使用子域名或目录的形式作为列入白名单的域名来绕过(例如,victime.com.attacker.com或attacker.com/victim.com )。

绕过黑名单

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖