主页 > 网络知识 > 从MicroStrategy入手发现Facebook的SSRF漏洞(4)

从MicroStrategy入手发现Facebook的SSRF漏洞(4)

 

1592990671_5ef31bcfa1914.png!small

 

但不幸的是,这次是一个Blind SSRF,所以无法判断一些GET请求的有效性,但是,经对m-nexus.thefacebook.com网站部署的MicroStrategy Web SDK研究后,我发现这是一个内部SSRF漏洞,因此无法像前述方法那样对Facebook内网架构执行枚举或探测,无实质危害性。如果就这样上报给Facebook安全团队后,肯定会被拒绝掉,那接下来怎么办呢?我也没辙了。

 

1592990704_5ef31bf0ba795.png!small

 

到此,我把这个漏洞先放一放,然后转向研究Facebook主站域名 (facebook.com)漏洞。

转机再现

几个月之后,我在Facebook系统中发现了另外一个漏洞,它是Facebook URL短址生成服务导致的敏感信息泄露漏洞。URL短址生成是通过大幅缩短统一资源定位字串的方式,来生成更短的URL链接,但最终的请求指向仍然不变。

Facebook有自己的短址生成方式,如https://fb.me/,该短址生成服务可供Facebook内部员工和公众用户使用,访问经其变化后的短址会直接跳转到相应的长址。另外,我还注意到Facebook短址“fb.me”缺乏速率限制措施(rate-limit),因此,我决定对其发起敏感目录或文件的暴力枚举,观察其响应中是否有值得注意的内容。在Burp Intruder模块的帮助下,我捕捉到了几个Facebook短址链接,访问它们会跳转到Facebook的内部系统,然后,经由这些内部系统会再跳转到Facebook主站(facebook.com)。大致的跳转逻辑如下:

https://fb.me/xyz==> 301 Moved Permanently —https://our.intern.facebook.com/intern/{some-internal-data} ==> 302 Found —https://www.facebook.com/intern/{some-internal-data} ==> 404 Not Found

注意,这里跳转到的Facebook内部系统链接,其中包含了很多敏感信息或数据,如“https://our.intern.facebook.com/intern/webmanager?domain=xyz.com&user=admin&token=YXV0aGVudGljYXRpb24gdG9rZW4g"

具体示例如以下请求https://fb.me/err后,在响应内容中出现了很多internal敏感信息和日志记录:

 

1592990771_5ef31c3309db3.png!small

 

为此,我特意针对https://fb.me/xyz构造了一个字典列表和一个Python脚本,配合Intruder模块,发起了自动化请求。Python脚本如下:

 

1592990783_5ef31c3f422a5.png!small

 

以下是请求发起后,从响应内容中获取的大量Facebook内部系统敏感信息:

 

1592990798_5ef31c4e3c387.png!small

 

 

1592990806_5ef31c56e6c31.png!small

 

出于Facebook保密策略,我这里只放了两张截图。该漏洞的危害在于可以泄露内部的HTTP GET请求响应,导致日志文件件路径信息泄露,还可无需任何权限验证地对Facebook内部数据、内部IP、内部ID、配置信息、内部文件等发起请求。利用该漏洞,攻击者可以枚举Facebook当前系统中的有效内部URL链接。

漏洞综合利用

所以,现在来看,我手头上有两个漏洞了:

1、Blind SSRF,利用它可以提交针对Facebook内部和外部系统的请求;

2、服务端敏感信息泄露,可以看到的是Facebook内部的日志文件夹路径、文件路径、内部数据请求响应等数据信息。

我特意构建了一个场景,基于敏感信息泄露实现目录遍历和服务端请求伪造攻击(SSRF)。攻击者只要知晓内部IP地址,那么对内部网络系统的攻击也就相对简单了。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!