某比特幣賭博網站價值$12,000的點擊劫持、XSS漏洞詳情
來自專欄嘶吼RoarTalk4 人贊了文章
web應用程序滲透測試中最具挑戰性的任務之一就是處理一個具有有限交互的應用程序。當嘗試了每一種常見的方法來進行一些程序開發之後,難免會很容易就放棄了,但是作為一個黑客,花時間去了解一個應用程序通常是有收穫的,並且對個人能力的成長也是有好處的。
介紹
過去幾周我一直在關注的一個具體應用是個比特幣賭博網站,在該網站上一支股票會隨著時間的推移逐漸上漲。賭客自己決定他們想要投入的金額和支付的乘數。隨著乘數的增加,可以選擇點擊一個按鈕,並獲得他們所想要獲得的回報量。乘數每次增加,股票就有可能「破產」,所有的投資將會損失。
這個應用程序有一些非常有趣的功能,但我要研究的是該程序與其他用戶聊天的功能。「深入挖掘」聊天功能:用戶客戶端的拒絕服務——2000美元賞金
瀏覽聊天消息後發現,當鏈接被粘貼時,服務會自動創建超鏈接。這很有趣,因為該網站製作了一個非常特殊的HTML元素,在實現該元素時經常是冒著危險,因此攻擊者可以執行以下操作之一……
<a href=":1">:2</a>
- 「onmouseover=alert(1) a=」——如果不正確處理,其將會在:1觸發
- javascript:alert(1)——如果沒有正確處理,其將會在:1觸發
- <script>alert(1)</script> ——如果未正確處理,其將會在:2觸發
遺憾的是,這些方法都沒有奏效。
似乎該服務沒有直接超鏈接外部端點,而是將其修改為以下端點,其中http://www.google.com就是一個已發布URL的示例……https://www.bustabit.com/external?url=https://www.google.com
發布一個URL的結果……
單擊上述URL後跳轉到的頁面。
將鏈接粘貼到相同的域結果如何?
我們將很快回到上面的端點,但是外部轉發服務的有趣之處在於它沒有為相同的域轉發URL。
有某種檢測機制可以確定URL是否來自同一站點,例如http://www.bustabit.com/a不會觸發要修改為http://www.bustabit.com/external?url=www.bustabit.com/a的域,因為它位於同一個域中。下面是生成的http://www.bustabit.com/a的HTML。<a href="/a">www.bustabit.com/a</a>
與生成的http://www.google.com/a的HTML相比較…
<a href="https://www.bustabit.com/external?url=https://www.google.com/a">https://www.google.com/a</a>
上述URL的真正炫酷之處在於,它不是對整個域進行超鏈接,而是簡單地對端點進行超鏈接。攻擊者在這裡可能做的是使用有效負載濫用外部資源的雙斜杠的功能。
https://www.bustabit.com//attacker.com/hacked
創建…
<a href="//attacker.com/hacked">www.bustabit.com//attacker.com/hacked</a>
起作用了!
下面的HTML與//http://hacker.com/上面的超鏈接完全相同。注意它是如何將你帶到外部資源而不是http://samcurry.net上的端點。有關這方面的更多信息可以在這裡找到:http://www.ietf.org/rfc/rfc2396.txt。
WOULD』VE WORKED可以作為鏈接過濾器的旁路,但這是一個全javascript的應用程序,它執行onclick事件來載入同一選項卡中的端點,因為域是完全相同的,而且它不需要刷新任何東西。將PoC HTML寫入客戶端,加入一個超鏈接http://whywontyouload.com,點擊該鏈接,結果什麼都沒有。進行一番調查,並確定點擊URL時出現的結果之後…
一段時間之後…長時間無休止地發送垃圾郵件並試圖找到將用戶誘導帶到外部域名之後,網站變灰。
事實證明,通過發送https://www.bustabit.com/%0t確實可以破壞客戶端。JavaScript不能對這個問題進行處理,因為%0t的URL編碼沒有對任何東西進行解碼,只是使整個應用程序失敗(有關正確的URL編碼的更多信息請參見這裡)。刷新頁面之後,客戶端仍然處於崩潰狀態。應用程序自動地將所有超鏈接加到JavaScript函數中,如果出現一個失敗的URL(例如有%0t),應用程序就會崩潰。如何將其武器化?攻擊者可以向任何投注者發送信息(信息是公開的——所有的現場投注和下注都在右上角),這將使受害者的客戶端崩潰,使他們無法兌現其投注。此外,攻擊者可以簡單的將一個壞鏈接發布到主聊天通道並斷開每個人的連接,使遊戲在很長一段時間內不能玩,或者撤銷與所有用戶交互的功能。「深入挖掘」聊天:XSS以及點擊劫持——$10,000賞金還記得我在上面發布的那個外部端點嗎?
事實證明,你可以簡單地向其傳遞一個JavaScript URI,並且攻擊者可以在應用程序的上下文中執行JavaScript。
這些bug要求你說服別人去點擊某些東西。要使這些PoC變得更好,你可以做的一件事是檢查網站是否可以放在<iframe>標籤中。如果可以,那麼就能使用Samy Kamkar的快速打包PoC生成工具創建一個點擊劫持PoC。
事實證明,該服務可以放在<iframe>中。因此,使用Click here to continue這個很棒的代碼小片段,生成了一個示例PoC。在現實世界中,scenario可以看起來像這樣。
那麼,可以用XSS做什麼呢?
會話接管!事實證明,web套接字會話存儲在瀏覽器的本地存儲中。攻擊者可能會濫用XSS,迫使受害者使用會話信息對外部服務進行調用。攻擊者可以通修改受害者的機密以及對服務進行身份驗證來對應用程序進行身份驗證。
總結
通常情況下,人們可能會使用一種非常「隨意噴洒」的方法獲取漏洞賞金。也許這種方法可能會有作用,但是,別忘了自動工具,如aquatone或dirsearch。如果想在有成千上萬的研究人員中脫穎而出,發現漏洞,最好對某些功能進行深入挖掘。
本文翻譯自:https://samcurry.net/the-12000-intersection-between-clickjacking-xss-and-denial-of-service/如若轉載,請註明原文地址: http://www.4hou.com/vulnerable/12563.html 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※網路信息安全-重點防護
※BOSS您為啥天天套路我!
※為SOC構建機器學習模型:逆向分析過程
※不斷演變的廣告軟體——PBot
※OODA循環在網路安全運營平台建設中的應用