巧用对象存储回源绕过SSRF限制

文章首发于:火线Zone社区

作者:KEVIL

0x01 前言

笔者之前在Web漏洞挖掘指南 -SSRF服务器端请求伪造介绍了SSRF某些场景下的利用和绕过方法,有时开发对于SSRF的限制可能是简单的禁用内网地址来实现的,这时如果传入一个外网地址,将其重定向至内网地址,则可以绕过限制对内网服务器发出请求。

302跳转bypass常见的方法有:

  1. 自建服务器,当收到目标服务器的请求后添加一个Location响应头重定向至内网服务器,Tips中有提到过:https://zone.huoxian.cn/d/392
  2. 线上平台生成短链接:

上面两种方式都有其弊端,前者需要直接搭建服务器环境,成本较高,后者在线平台生成的短链接一般都有时间限制,在研究对象存储时,笔者发现利用对象存储的静态网站托管及回源规则进行重定向也是一种可行的办法。

0x02 静态网站托管及回源配置

静态网站托管功能允许用户将静态网站托管到OSS的存储空间(Bucket),并使用Bucket的访问域名访问这个网站。Bucket配置静态网站托管后,当客户端向OSS请求的数据不存在时,可通过设置回源规则确保其仍然可以获取正确的数据。

在控制台进行图形化配置过程:

创建一个存储桶

开通公有读权限:

进入Bucket列表,在左侧导航栏,选择基础设置 > 静态页面。进行如下配置:

在左侧导航栏,选择基础设置 > 镜像回源。

创建如下回源规则,回源地址即需要重定向的内网地址(如果显示固定地址不能为空,可抓包修改或者输入空格即可创建成功)。

访问存储桶对外访问的链接,随后便跳转至http://127.0.0.1/index.html