用IP輪換+暴力猜解禁用未確認的Facebook賬戶

  • 2019 年 12 月 23 日
  • 筆記

本文分享的是通過IP輪換結合暴力破解方法禁用Facebook新創建的未確認用戶,此前在2014年Facebook曾針對該漏洞做過修復,但是由於修復策略不夠完善,導致可以用IP輪換方法再次繞過這種防護,形成對任意新創建未確認Facebook用戶的間接禁用攻擊。

早前的賬戶創建確認漏洞

在2014年Facebook曾針對該漏洞做過修復。當時的漏洞情況是這樣的:如果你用個人郵箱註冊一個Facebook賬戶,創建完成之後,Facebook會向你的郵箱發送一個5位數確認碼郵件,但出於個人郵箱被惡意註冊的安全原因考慮,Facebook還會在郵件末尾附加上一個「未曾註冊過Facebook」的選項按鈕,以便讓那些個人郵箱被惡意註冊的用戶提交上報Facebook。如下:

提交之後,會產生以下鏈接:

https://www.facebook.com/[email protected]&c=5-DIGIT-CODE&report=1

移動端對應的是:

https://m.facebook.com/[email protected]&c=5-DIGIT-CODE&report=1&message=1

漏洞原因在於,其中的 c 參數,也就是Facebook發送過來的一個5位數確認碼,可以被攻擊者暴力破解猜測到,因此可導致攻擊者用此種方式去禁用任何未及時確認的Facebook新註冊賬戶。該漏洞已於2014年10月被Facebook修復。

現在存在的問題

通過測試分析,作者發現該路徑下設置了訪問頻率限制(Rate limit),針對5位數確認碼做暴力猜解時會被Facebook阻攔掉。如下:

我猜想Facebook之前的修復策略如果是基於IP的限制方法的話,我可以通過變換IP地址來進行暴力猜解啊。果然,當我變換新的IP地址再進行進行暴力猜解之後,Facebook完全不會實施阻攔。

為了更順利的實施這種暴力猜解工作,需要對每次請求的IP地址都做出變化,也即IP輪換。為了綜合利用IP輪換+暴力猜解,我Google了一些在線資料,並最終用Luminati+Burp搭建了一個測試環境,完美繞過了Facebook後端限制,並有效地猜測出Facebook5位數確認碼,實現對Facebook未確認賬戶的禁用。

漏洞影響

1、對於受害者用戶來說,如果攻擊者以此方式禁用了它的Facebook賬戶,那麼由於其郵箱地址已經被Facebook列入黑名單,所以受害者在今後就無法用該郵箱註冊Facebook賬戶了; 2、另外,如果攻擊者知道受害者用戶的確切註冊郵箱,即使用戶已經經過了Facebook確認,但一樣能通過此種方式去舉報受害者用戶郵箱,形成賬戶濫用提交,後期可由Facebook對受害者的Facebook賬戶實現禁用,整個過程無需與用戶進行任何交互。

漏洞上報及處理進程

2019.6.30 : 漏洞初報 2019.7.3 : Facebook深入確認 2019.8.23: Facebook完成修復 2019.8.23 : Facebook獎勵了$1000

*參考來源:medium,clouds 編譯整理,轉載請註明來自 FreeBuf.COM