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,或者至少對其進行哈希保護。