BUG賞金 | Facebook受邀者的郵箱地址披露
- 2019 年 12 月 23 日
- 筆記
本文知識點:郵箱轟炸+資訊泄露
當Facebook只是一家只有幾個成員的小公司時,它需要一種方法來獲得更多的成員,使用Facebook的邀請系統來邀請你的朋友。
最早的廣告發布是在流行的網站上手動發布廣告(例如,使用Google),或讓您的成員使用其電子郵件帳戶邀請其朋友。
現在Facebook成長起來,當您想要更多的網站訪問者時,你會在Facebook上做廣告,因為每個人都在那裡。
Facebook的邀請系統:
當用戶在初期加入Facebook時,幾乎看不到任何東西。因此,Facebook要求其成員使用由註冊用戶創建的電子郵件邀請來邀請其朋友。
用戶提供了他的朋友的電子郵件地址,他們從Facebook收到了一封電子郵件,說「 你好啊,你的朋友現在在Facebook上,歡迎您也加入Facebook!」。
有趣的部分:
當我遇到Facebook的這一功能時,我立即開始對其進行分析。我想,如果以用戶Y的身份邀請他們加入,並試圖愚弄他們,那就太好了,儘管這樣做的人是用戶X。
當我不斷地邀請人們時,我注意到了一些有趣的事情:每個到特定電子郵件地址的邀請中都包含一個邀請ID:ent_cp_id。
單擊「邀請到Facebook」時,會彈出一個小窗口,並顯示被邀請者的完整電子郵件地址。惡作劇的同時發現了邀請的時候會顯示完整的電子郵件地址。
我寫了一封邀請信,並且邀請了我的一位好友。
這時我在思考:ent_cp_id是控制邀請郵件的,我已經邀請了這個用戶,他的ent_cp_id應該不能再訪問了。但我錯了。它的ent_cp_id還在那裡。事實上,只要重新傳輸HTTP請求,我就可以再次邀請相同的用戶(類似與郵箱轟炸)。
但是這個漏洞最有趣的部分是,任何用戶都可能看到ent_cp_id後面的電子郵件地址。
這意味著,任何通過電子郵件被邀請到Facebook的人都很容易受到電子郵件地址泄露的影響,因為該邀請從未被刪除,而且任何用戶都可以訪問它。攻擊者接下來要做的就是隨機猜測ent_cp_id。正如我所說,老的ent_cp_id沒有被刪除,所以成功率很高。
結論:
當您處理敏感資訊(例如電子郵件地址)時,應始終限制可以執行某項操作的次數。另外,建議擦除可能鏈接到該敏感資訊的任何ID,或者至少對其進行哈希保護。