当前位置:首页 > 网络安全 2017年09月11日
对众多知名公司造成影响的Oracle Responsys本地文件包含漏洞

对众多知名公司造成影响的Oracle Responsys本地文件包含漏洞



Responsys提供企业级别的B2C商业服务模式,当企业使用Responsys云服务方案进行了系统架设之后,Responsys会为每一个客户企业分配与其它企业不同的“私有IP”,以访问和使用其自身的云服务系统。

漏洞发现

这多少有点无心之举,我经常在邮箱中收到Facebook发给我的一些开发者邮件,这些邮件有些是发自域名为em.facebookmail.com的邮箱,就好比我邮箱中经常有一些来自fbdev@em.facebookmail.com的邮件,这引起了我的注意。漏洞挖掘思维让我觉得域名em.facebookmail.com可能会有点意思,于是经过一番DIG之后,我发现该域名与Facebook的”Responsys”云服务有关,而在之前其它的渗透测试场景中我曾对”Responsys”有所了解。

Screen Shot 2017-05-17 at 5.29.29 PM.png

从上图可知,Responsys为Facebook提供了基于域名em.facebookmail.com的邮件服务。而我在fbdev@em.facebookmail.com发给我的邮件中也发现了Responsys邮件服务的原始链接:

http://em.facebookmail.com/pub/cc?_ri_=X0Gzc2X%3DWQpglLjHJlYQGkSIGbc52zaRY0i6zgzdzc6jpzcASTGzdzeRfAzbzgJyH0zfzbLVXtpKX%3DSRTRYRSY&_ei_=EolaGGF4SNMvxFF7KucKuWNhjeSKbKRsHLVV55xSq7EoplYQTaISpeSzfMJxPAX8oMMhFTpOYUvvmgn-WhyT6yBDeImov65NsCKxmYwyOL0.

参数 “_ri_=”的作用是对链接生成一个有效请求。在经过一些测试后我发现,Facebook系统在此不能正确处理二次URL编码,可以在”_ri_=”之前的链接中添加使用任意正确的查询参数值,比如,我可以在此加入关于密码查询的“%252fetc%252fpasswd”命令,并能成功执行:

http://em.facebookmail.com/pub/sf/%252fetc%252fpasswd?_ri_=X0Gzc2X%3DYQpglLjHJlYQGrzdLoyD13pHoGgHNjCWGRBIk4d6Uw74cgmmfaDIiK4za7bf4aUdgSVXMtX%3DYQpglLjHJlYQGnnlO8Rp71zfzabzewzgLczg7Ulwbazahw8uszbNYzeazdMjhDzcmJizdNFCXgn&_ei_=Ep0e16vSBKEscHnsTNRZT2jxEz5WyG1Wpm_OvAU-aJZRZ_wzYDw97ETX_iSmseE

通常来说,这种通过目录遍历字符的注入而获取到目标服务器相关信息的做法,都是由于对代码和系统架构的审查和过滤不当造成的。

举一反三

很快,我也意识到该漏洞应该不只对Facebook造成影响,可能还对那些使用Responsys提供私有云服务的公司形成安全威胁。谷歌search了一下,可以发现一大把的公司网站都存在该漏洞:

Screen Shot 2017-05-17 at 5.44.45 PM.png

利用该漏洞,通过构造有效的_ri_请求参数,可以直接获取到目标公司企业的一些内部服务器信息,如Linkedin:

linkedin.com.png

这种本地文件包含(LFI)漏洞造成的影响,小到信息泄露,大到服务器被攻击控制,都有可能发生。而从这个Responsys架构的LFI漏洞来看,相对于比较严重,因为它将对大量使用Responsys服务的公司造成数据安全隐患。

最终,我选择及时向Oracle公司上报了这个漏洞,一周之后,该漏洞就得到了Oracle方面有效的修复解决。

Screen Shot 2017-05-17 at 6.49.55 PM.png