http://p0.qhimg.com/t012abab2aeb43783b1.jpg


前言


Hello,大家好!今天我将向大家分享前段时间我是如何挖到的一个基于云端的本地文件包含漏洞。漏洞影响Facebook、Linkedin、Dropbox等多家企业。

http://p0.qhimg.com/t01e0803bf7817a39bd.png

这个LFI(本地文件包含漏洞)的触发点在Oracle Responsys的云系统中。简单介绍一下,Responsys是企业级基于云的B2C系统 每个企业用户通过专属的ip去使用Responsys 系统。企业用户不能和其他公司分享IP。


漏洞是如何发现的?


我像往常一样挖掘漏洞,注意到Facebook的子域名em.facebookmail.com向我发送了一个开发者邮件。举例来说,在我的收件箱中,我收到了一封fbdev@em.facebookmail.com发送的邮件。这勾起了我测试em.facebookmail.com子域名的兴趣。随后我立即dig了一下,我发现这个子域名连接到“Responsys”服务,在之前的渗透测试中还搞过这个。

http://p5.qhimg.com/t01427724563813e648.png

“Responsys”提供了一个邮件服务(em.facebookmail.com),如上图所示。我在收件箱中看到如下原始链接:

1

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

VV55xSq7EoplYQTaISpeSzfMJxPAX8oMMhFTpOYUvvmgn-WhyT6yBDeImov65NsCKxmYwyOL0

我发现,为了生成有效的请求,就一定需要使用“_ri_ =”参数。经过一番测试,我发现系统没有正确处理双重URL编码,在参数“_ri_”处使用可以正确生成有效请求的值,我可以在URL路径中注入“%252fetc%252fpasswd”。由于服务端没有对输入做正确的过滤,可以使用目录遍历字符,可以从受影响的服务器中检索内部文件。


漏洞演示(PoC)


1

http://em.facebookmail.com/pub/sf/%252fetc%252fpasswd?_ri_=X0Gzc2X%3DYQpglLjHJlYQGrzdLoyD13pHoGgHNjCWGRBIk4d6Uw74cgmmfaDIiK4za7bf4aUdgSVXMtX%3DYQpglLjHJlYQGnnlO8Rp71zfzabzewzgLczg7Ulwbazahw8

uszbNYzeazdMjhDzcmJizdNFCXgn&_ei_=Ep0e16vSBKEscHnsTNRZT2jxEz5WyG1Wpm_OvAU-aJZRZ_wzYDw97ETX_iSmseE

可以看到漏洞已经被复现了,我知道这个LFI(本地文件包含漏洞)不仅影响了Facebook,还影响了许多其他公司。通过专属的ip去使用Responsys系统的企业用户都会受到该问题的影响。


影响范围


之后我意识到,这个问题不仅仅影响Facebook,也涉及到其他的企业。通过专属的ip去使用Responsys系统的企业用户都会受到该问题的影响。

通过Google搜索可以看到其他受该漏洞影响的公司。

http://p1.qhimg.com/t0163eb27e3fdba7484.png

将参数_ri_中的有效请求值复制到目标公司的站点,我可以使用相同的技术检索内部信息(读取指定位置的文件内容)。

http://p8.qhimg.com/t0128320fb32883a74d.png

本地文件包含漏洞(LFI)会导致泄露服务器中敏感信息,进一步利用可导致被完全接管。在本篇文章的案例中,最坏的影响是这个漏洞影响了多家公司的数据。


后记


我向Oracle报告了这个漏洞,Oracle官方在一周内修复了这个安全问题。

http://p2.qhimg.com/t0180f53d7a725f9ff7.png



本文由 安全客 翻译,作者:童话

原文链接:http://panchocosil.blogspot.cl/2017/05/one-cloud-based-local-file-inclusion.html