
在前幾篇文章中,我分享了亞馬遜網站XSS漏洞和Bol.com的開放重定向漏洞,今天我再和大家聊聊不安全的服務器配置問題,很多時候,服務器的錯誤配置將會導致一些列目錄或無限制文件上傳漏洞。就拿我前久遇到的一個安全測試為例吧,目標網站絕對算得上是牛轟轟的大牌公司,Apple.com,對,你沒看錯,是蘋果公司,我就發現了其網站的一個無限制文件上傳漏洞。
最后,我也因此測試漏洞收獲了蘋果官方不菲的賞金,以及漏洞名人堂的入榜致謝。好吧,我們一起來看看這個蘋果官網的無限制文件上傳漏洞。
目標踩點
先沖杯咖啡,然后啟動子域名探測程序 Aquatone,Aquatone算是一個前期偵察利器了,它能通過開源信息和字典方式最大范圍地識別出目標網站存在的子域名站點。

Aquatone 具備四種不同命令執行功能:
1. Aquatone-discover: 從開源信息中查找目標網站相關的不同子域名或常見子域名;
2. Aquatone-scan: 針對Aquatone-discover結果中的不同子域名網站進行端口掃描;
3. Aquatone-gather: 為每個子域名網站創建快照,并形成最終的一份HTML報告。
4. Aquatone-takeover: 嘗試查找由外部主機或服務托管的一些非活動的,也即目標網站已經廢棄不在用的子域名。如果找到這么一個子域名,你可以通過重新續費注冊再次接管它,實現間接劫持,上報之后坐等收賞金。這就有一批EdOverflow大牛以此種方式實現域名劫持的案例。
等待識別結果
通常來說,Aquatone的識別過程需要十多分鐘的時間,掃描、探測、驗證、報告成型。最終,這里的Apple.com前后怕用了差不多半小時,最后對1萬多臺主機進行了掃描,生成了多達84份的HTML報告。
難道我是第一個用Aquatone掃描Apple.com官網的人嗎?當然不是。估計也怕沒人認真看完這84份HTML報告。那我們就從第50份報告開始吧,來認真分析一下最后的34份報告。
尋找異常
用了50多分鐘的時間,我仔細看了看這34份報告,想嘗試從中發現一些蛛絲馬跡。正巧,在其中一份子域名網站報告中發現了蘋果公司使用了多個 AWS S3 云存儲服務來托管文件,如果我們能獲得其中一個這些S3存儲桶(bucket)的訪問權限,就能間接實現對其涉及的 Apple.com 子域名網站劫持。

要認真讀完所有Aquatone 生成的84份HTML報告可謂相當之無聊,那我們就采取點不一樣的方式吧。所有HTML報告中都包含了一個服務器發送過來的頭信息,而且,S3存儲桶也會發送個名為 X-Amz-Bucket-Region 的頭消息,那我們就來在報告中嘗試查找一下這個頭消息字段。

現在,我們就一一手動來打開這些涉及 S3存儲桶(bucket)的子域名試試,訪問相應鏈接之后,幾乎所有這些子域名網站都會返回一個拒絕訪問(Access denied)的響應。

測試目標
經過一遍手動訪問之后,只有子域名網站 http://live-promotions.apple.com 響應的內容不同,其響應頁面中包含了S3 bucket 的名稱和目錄信息。

現在,有了 S3 bucket 的名稱之后,我們可以嘗試來連接它試試看,具體 S3 bucket 連接方法可以參照這里 – aws。
我們需要安裝 AWS 的命令行界面程序,然后根據上述響應頁面中的 S3 bucket 名稱進行遠程連接。
安裝好命令行界面程序之后,知道 S3 bucket 名稱,那我們嘗試看看能否上傳些東西到上面,就傳個釣魚頁面上去試試看看解析情況:
aws s3 cp login.html s3://$bucketName –grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
OK,竟然可以,還能成功解析,GOD:


漏洞影響
可以往存在漏洞的 live-promotions.apple.com 網站上傳一個釣魚頁面;
可以竊取用戶的子域共享Cookie信息;
可以從 S3 bucket 中獲取到一些敏感文件信息,其中包含有 xcode 項目相關的東西。
總結
現在,我們就對這個蘋果公司的子域名網站有了完整了讀寫控制權了,配合上述那個完美的能以假亂真的釣魚頁面,足可以實現針對蘋果用戶的密碼或Cookie信息竊取。對這個漏洞的解決方法,也就是要對 S3 bucket 進行嚴格的安全加固,具體可以參照AWS的訪問控制策略。
漏洞上報進程
2018-6-19 發現并向蘋果官方上報漏洞
2018-6-19 蘋果官方確認漏洞
2018-6-19 蘋果安全團隊修復漏洞
2018-6-22 蘋果將我列入漏洞致謝名人堂 當然我也獲得了不菲賞金
|