如何發現Oracle Responsys云服務系統中的漏洞
今天我要向大家展現的是,我如何發現了Oracle Responsys云效勞系統中的一個本地文件包含破綻(LFI)。由于當前很多商業銷售、網絡存儲和社交關系公司都采用了Oracle Responsys的云處理計劃,所以,該破綻對多個知名公司效勞形成影響,這些公司包括Facebook、Linkedin、Dropbox等。

Responsys:原先為一家領先的企業級B2C云營銷軟件提供商,公司主要向企業提供網絡廣告營銷軟件,幫助企業通過電子郵件、網站、移動設備、社交網絡及展示廣告進行營銷宣傳與溝通。2013年12月21日,甲骨文宣布斥資15億美元收購,之后成為Oracle Responsys。Responsys進一步整合延伸了Oracle商業云、銷售云、服務云、社交云及營銷云等諸多客戶關系云服務。
Responsys提供企業級別的B2C商業服務模式,當企業使用Responsys云服務方案進行了系統架設之后,Responsys會為每一個客戶企業分配與其它企業不同的“私有IP”,以訪問和使用其自身的云服務系統。
漏洞發現
這多少有點無心之舉,我經常在郵箱中收到Facebook發給我的一些開發者郵件,這些郵件有些是發自域名為em.facebookmail.com的郵箱,就好比我郵箱中經常有一些來自[email protected]的郵件,這引起了我的注意。漏洞挖掘思維讓我覺得域名em.facebookmail.com可能會有點意思,于是經過一番DIG之后,我發現該域名與Facebook的”Responsys”云服務有關,而在之前其它的滲透測試場景中我曾對”Responsys”有所了解。

從上圖可知,Responsys為Facebook提供了基于域名em.facebookmail.com的郵件服務。而我在[email protected]發給我的郵件中也發現了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方面有效的修復處理。

馬哥學習交流群
?