大量破解 Facebook 帳號的方法

Facebook 安全設計上的問題造成的重大漏洞:「Hacker reveals How He Could have Hacked Multiple Facebook Accounts」。

攻擊者先用很多 proxy 去打出哪些 id 是有效的:

Gurkirat first collected valid Facebook IDs by making queries to Facebook Graph API starting with 100,000,000,000,000, since Facebook IDs are generally 15-digit long and then visited www.facebook.com/[ID] with a valid ID number in place of [ID].

這樣他就順利打出兩百萬個帳號:

Once entered, the URL automatically redirected and changed the Facebook ID to the user's username. In this way, first, he was able to make a list of 2 Million valid Facebook usernames.

接下對這些帳號發出重設密碼的需求,並且開始亂猜六碼數字 (也是透過大量的 proxy):

Then using a script, hundreds of proxies and random user-agents, Gurkirat automatically initiated the password reset requests for those 2 million users, each assigned a 6-digit password reset code, thus consuming the complete 6-digit range.

然後就打出一票來了:

最大的問題在於六碼數字的強度不夠,但 Facebook 看起來沒打算改...

3 thoughts on “大量破解 Facebook 帳號的方法”

  1. Zhi-Xuan says:

    gslin 的第二步驟好像畫錯重點,
    就我的理解他不是去猜那六位數,
    而是去期待「我發起的兩百萬個帳戶重設密碼請求能剛好覆蓋 000000~999999」

    六位數總共有一百萬總組合,
    兩百萬個帳戶假設平均分配的話一個 passcode 最少會有兩個帳號用到,
    整個攻擊行動用白話文說就是「利用兩百萬個帳戶名稱發起一次攻擊隨機破解其中一個帳戶」

    由於重設密碼連結有限制猜測速率所以很難針對一個帳號從 000000 猜到 999999,
    所以他只是選定了一個數字如「666666」,
    然後基本上每個帳戶都只猜「一次」,
    理論上兩百個帳戶最少會有一個帳戶剛好用到他猜的數字。

    以 Facebook 的角度來說使用 6 位數並不是原因所在,
    而是「幾千個 Proxy 就能幫兩百萬個帳戶發起重設密碼」請求這件事,
    只要限制好單一 IP 發起重設密碼請求的速率這種攻擊應該就會變得很難實現。

  2. Alec says:

    用ddos的方式,就不受單一IP限制了,很好實現的

  3. Zhi-Xuan says:

    @Alec

    用 Proxy 和 DDoS 基本上是一樣的原理喔,如果有兩百萬個 IP 可以發動攻擊那我也服了。

Leave a Reply

Your email address will not be published. Required fields are marked *