您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“跨站Websocket Hijacking漏洞導致Facebook賬號劫持的原因是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“跨站Websocket Hijacking漏洞導致Facebook賬號劫持的原因是什么”這篇文章吧。
在測試Facebook的近期推出的某個新應用中(出于保密原因此處不便公開),存在跨站Websocket Hijacking漏洞,攻擊者利用該漏洞可以劫持使用該新應用的用戶Websocket 連接,之后構造惡意的Websocket信息,可實現對目標受害者的Facebook賬號劫持。
因為該項Facebook新近推出的應用還處于測試階段,只有少數安全人員可以受邀進行訪問測試,所以以下漏洞解釋中已對應用名稱進行了隱匿,且暫不提供相關的漏洞利用代碼。
由于該項Facebook新近推出的應用托管在facebook.com的子域名之下,并允許其本地IP地址(如0.0.0.1/8 或 192.168.1.1/8)包含成為Origin主機頭,該應用基于隨機數的安全登錄(隨機數在登錄頁面中生成然后在后續的某個websocket消息中被發送驗證),隨機數用于建立獲取有效的websocket連接會話,這里并不依賴Cookie信息進行用戶身份驗證。
但當測試授權機制的另一個bug時,我發現了一個變化,按之前的分析來看,授權機制也應該用隨機數來驗證登錄,但此處卻開始用了用戶的Facebook全局Cookie來驗證用戶身份。
以下為用Facebook內部的本地IP地址成功構造為Origin主機頭建立的Websocket連接:
綜上分析來看,由于Origin主機頭僅允許本地IP地址,因此與受害者在同一本地網段的攻擊者可構造惡意Websocket連接,通過DNS欺騙(Spoofing)或點對點發送給受害者,實現對受害者Facebook的賬號劫持。
另外,也可以在受害者手機中的安裝惡意APP來啟動無權限限制的HTTP服務,然后向受害者同網段的其他IP地址的Facebook用戶發送經過構造的deep-link形式的惡意URL鏈接,實現擴大化攻擊。
1、為了更好的說明利用,我訪問REDACTED.facebook.com,然后保存主頁,這里要連同其中處理websocket通信的Javascript腳本文件一起保存。因為Websocket通信消息是加密的,且這里的Javascript腳本文件是經過編碼的,有些難懂,且在后續的攻擊利用中要用到其中一些稍作修改的Javascript腳本文件。之后,我用包含這些修改的Javascript腳本文件啟動了一個HTTP服務;
2、利用上述啟動的http服務,我向同一網段的受害者發送了一個惡意鏈接之后,其中涉及的腳本會與REDACTED.facebook.com服務端建立起一個Websocket連接,然后會在登錄階段的身份驗證時需要用到用戶的Cookie信息(由于Websocket不受限于SOP或CORS策略,所以這對本地IP來說是可行的)
3、作為POC測試,受害者在訪問了上述包含有本地IP的惡意鏈接之后,就會看到自己成功登錄到了Facebook賬戶,而在Javascript腳本文件中,卻包含了一個攻擊Payload,可以當受害者登錄成功后向攻擊者發送一個特定的websocket,以進行Facebook賬戶的綁定郵箱或手機號的添加,以此實現對受害者Facebook賬戶的劫持。該攻擊針對安卓手機APP用戶親測有效,iOS中未測試過。
以上是“跨站Websocket Hijacking漏洞導致Facebook賬號劫持的原因是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。