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

从MicroStrategy入手发现Facebook的SSRF漏洞

 

1592991329_5ef31e61902d4.jpg!small

 

本文中,作者从Facebook子域名中部署的微策略(MicroStrategy)应用服务入手,通过Burp Collaborator构造,利用深入深入再深入的挖掘,发扬持之以恒的精神,发现了敏感信息泄露和SSRF漏洞,收获了$31500($1000+$30000+$500)的漏洞奖金。一起来看看。

漏洞端倪

Facebook是流行的社交媒体平台,我个人喜欢测试Facebook漏洞,这不,最近我发现了Facebook的子域名https://m-nexus.thefacebook.com/,访问它后会自动跳转到https://m-nexus.thefacebook.com/servlet/mstrWebAdmin,如下图所示:

 

1592990063_5ef3196f46b99.png!small

 

从网页中的响应内容,我马上对其中的关键字mstrWebAdmin进行了谷歌查找,发现它是基于商务智能公司微策略(MicroStrategy)工作集成的一个网站服务:

 

1592990076_5ef3197cb4fe1.png!small

 

我还从一篇博文中找到了确定线索:

 

1592990088_5ef31988c3180.png!small

 

接着,我从MicroStrategy的官方配置文档中发现,有两个可以公开访问的端点:

 

1592990108_5ef3199c0b851.png!small

 

结合MicroStrategy官方配置文档深入研究,我发现了一个默认为HTTP基本认证配置的端点:https://m-nexus.thefacebook.com/servlet/mstrWeb,以及另一个无需身份验证的端点:https://m-nexus.thefacebook.com/servlet/taskProc

在后一个无需验证的端点中,它会用“taskId”等参数来执行数据收集和内容生成。我用Burp的Intruder模块对其中的任务参数进行了枚举,发现其每一个任务请求都会执行一个有效的会话参数验证,唯独在处理“taskId=shortURL”时无需会话参数验证,因此,攻击者可以利用这条线索无需任何身份验证访问到facebook的该类服务。

 

1592990157_5ef319cdee3e0.png!small

 

 

1592990174_5ef319de09c49.png!small

 

但是,在该操作请求下,我尝试着把MicroStrategy官方配置文档中涉及的参数都fuzz了一遍,也没有从请求响应中返回有用的信息,大多数时候它返回的都是状态码为500的错误消息“The source URL is not valid”,为此,我就尝试了把MicroStrategy的一些SDK源码下载下来打算进行一个源码分析。以下是一个将近400M的源码,其中包含了一些脚本和jar文件。

 

1592990201_5ef319f9c587f.png!small

 

在 jd-gui 帮助下,我对它进行了反编译。我查找的目标是无需会话参数验证,处理short URL的shortURL请求任务,最终,我在其中一个jar文件中发现了相关调用说明:

 

1592990215_5ef31a0752603.png!small

 

现在我要分析的是,为什么每次该任务请求返回的都是错误消息。另外,从代码中可以看出,“shortURL”请求中涉及的srcURL参数值必须是经“https://tinyurl.com/" 转化后的短地址,只有通过该短地址,任务才能执行数据导致或读取。如下:

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