挖洞經驗 | Facebook全平臺聊天應用中的使用者傳送附件洩露漏洞($15,000)
今天分享的這篇writeup,作者在Facebook視訊聊天裝置Portal的官網中,通過測試其中的客戶支援聊天機器人(Support Bot),利用其附件上傳功能,發現了一個存在於Facebook 聊天架構中,影響Messenger、Portal和Workplace等Facebook全平臺聊天應用,會導致使用者在聊天應用中傳送的附件洩露,非常嚴重。
以下是作者的漏洞發現思路:
發現漏洞
2019年1月22日凌晨4點,我苦悶地抽著煙測試漏洞,突然,Facebook視訊聊天裝置Portal官網 – portal.facebook.com 中新加入的聊天機器人功能映入我的眼簾。
Facebook Portal:Portal是Facebook推出的智慧視訊聊天和社交功能聯絡工具,為Facebook的第一款消費類硬體產品,使用者開始使用 Portal 聊天時,如果有多個人,Portal 則能夠識別到所有人。Facebook 表示,Portal 希望可以創造一種聊天雙方在同一個房間面對面的感覺。具體說明可以參考Portal官網 https://portal.facebook.com/
早前,我曾測試過 portal.facebook.com,並沒在其中發現任何安全隱患,但是現在當我重新開啟這個網站,在賬戶設定區域,我看到了一個此前沒有發現的功能 – 客戶支援聊天機器人(Support Bot),如下:
接著,我注意到,在這個Support Bot聊天頻道中,可以向其中上傳附件,圖片、視訊和文件等型別檔案都能上傳有效。所以,我就上傳了一張正常圖片,同時用Burpsuite對上傳操作進行抓包,想看看POST請求中的具體引數,之後,我看到了以下請求包內容:
POST /messaging/send/ HTTP/1.1
Host: www.facebook.com
client=mercury&action_type=ma-type:user-generated-message&body=&ephemeral_ttl_mode=0&has_attachment=true&image_ids[0]=123&message_id=111&offline_threading_id=123
在這個請求包中,包含了一個名為 image_ids[0] 的有意思的引數,它應該表示我上傳到Portal聊天機器人(Support Bot)中的那張圖片。我就想如果我把這個圖片ID換成其他使用者的圖片ID,是否就能間接訪問獲取到其他使用者的圖片了呢!?同理,那其他使用者的其它附件(如文件、視訊和聲頻)也應該一樣可用此方法間接訪問獲取到!最終,我經過設定的attacker 和 victim賬戶進行相互測試,發現了以下幾個方面的安全問題:
可用此方法獲取到其他使用者通過Portal聊天機器人傳送的任何附件,這些附件包含圖片、文件、視訊和音訊;
該漏洞影響了所有Facebook的聊天架構應用,涉及Facebook主聊天系統、Messenger、Portal聊天應用和Workplace聊天應用;
我可以在所有Facebook的聊天架構應用中來複現這個漏洞問題;
在Burpsuite的Proxy代理標籤中可以通過請求成功復現,但如果傳送到Repeater模組中進行重放攻擊則會返回一個未知錯誤。
漏洞利用場景
惡意攻擊者利用該漏洞,可以編寫指令碼工具去暴力列舉其他使用者的上傳附件ID,如Images IDs, video IDs, files IDs and audio messages IDs。Facebook聊天應用的日均使用者可是數百萬啊,如果哪個VIP人士類似的圖片和音視訊附件被攻擊者用該漏洞獲取,那後果不堪設想,對使用者個人隱私來說,也是一個極大的威脅。
PoC視訊如下:
之後,我及時把該漏洞上報給了 Facebook 安全團隊,他們非常重視,最後獎勵了我15,000美金!這也是我上報Facebook漏洞以來收穫的最高獎金。
漏洞上報程序
2019.1.22 漏洞初報 2019.2.4 漏洞分類 2019.2.13 漏洞修復 2019.2.13 修復確認 2019.2.13 $15,000賞金髮放
經驗
嘗試時不時地去測試那些你曾經測試過的目標,可從一些新改進、更新的功能中發現問題;
不要相信響應內容,出錯也並不意味著沒有可能。
*參考來源: medium ,clouds編譯,轉載請註明來自FreeBuf.COM