导读 | 由于当前很多商业销售、网络存储和社交关系公司都采用了Oracle Responsys的云解决方案,所以,该漏洞对多个知名公司服务造成影响,这些公司包括Facebook、Linkedin、Dropbox等。 |
Responsys:原先为一家领先的企业级B2C云营销软件提供商,公司主要向企业提供网络广告营销软件,帮助企业通过电子邮件、网站、移动设备、社交网络及展示广告进行营销宣传与沟通。2013年12月21日,甲骨文宣布斥资15亿美元收购,之后成为Oracle Responsys。Responsys进一步整合延伸了Oracle商业云、销售云、服务云、社交云及营销云等诸多客户关系云服务。
Responsys提供企业级别的B2C商业服务模式,当企业使用Responsys云服务方案进行了系统架设之后,Responsys会为每一个客户企业分配与其它企业不同的“私有IP”,以访问和使用其自身的云服务系统。
这多少有点无心之举,我经常在邮箱中收到Facebook发给我的一些开发者邮件,这些邮件有些是发自域名为em.facebookmail.com的邮箱,就好比我邮箱中经常有一些来自fbdev@em.facebookmail.com的邮件,这引起了我的注意。漏洞挖掘思维让我觉得域名em.facebookmail.com可能会有点意思,于是经过一番DIG之后,我发现该域名与Facebook的”Responsys”云服务有关,而在之前其它的渗透测试场景中我曾对”Responsys”有所了解。
从上图可知,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了一下,可以发现一大把的公司网站都存在该漏洞:
利用该漏洞,通过构造有效的_ri_请求参数,可以直接获取到目标公司企业的一些内部服务器信息,如Linkedin:
这种本地文件包含(LFI)漏洞造成的影响,小到信息泄露,大到服务器被攻击控制,都有可能发生。而从这个Responsys架构的LFI漏洞来看,相对于比较严重,因为它将对大量使用Responsys服务的公司造成数据安全隐患。
最终,我选择及时向Oracle公司上报了这个漏洞,一周之后,该漏洞就得到了Oracle方面有效的修复解决。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/117666.html