by AppSecure

私は、Facebook による責任開示方針のもとでこれを公開します。 この脆弱性は修正されています。

この投稿は、私が Facebook で発見した、ユーザーとの対話なしに他のユーザーの Facebook アカウントに簡単に侵入できる簡単な脆弱性についてのものです。 メッセージや、支払いセクションに保存されているクレジット/デビットカード、個人の写真、その他の個人情報を見ることができました。

Facebook はこの問題を迅速に認め、修正し、この脆弱性の重大性と影響に基づき、私に 15,000 米ドルの報奨金を与えてくれました。

ハッキングの仕組み

ユーザーが Facebook でパスワードを忘れた場合、https://www.facebook.com/login/identify?ctx=recover&lwv=110に電話番号と電子メールアドレスを入力して、パスワードをリセットするオプションがあります。

Facebook はこの電話番号または電子メール アドレスに 6 桁のコードを送信し、ユーザーは新しいパスワードを設定するためにそれを入力しなければなりません。

www.facebook.com で 6 桁のコードをブルート フォースしようとしたところ、10~12 回無効な試みをした後にブロックされました。 興味深いことに、レート制限はパスワード忘れエンドポイントから外れていました。

私は自分のアカウントを引き継ごうとし (Facebook のポリシーでは、他のユーザーのアカウントに害を与えてはいけません)、自分のアカウントに新しいパスワードを設定するのに成功しました。

A proof of concept video of the hack

As you can see in the video, I could set a new password for the user by brute force the code that was sent to their email address and phone number.この動画でわかるように、私はユーザーの電子メールアドレスと電話番号に送信されたコードをブルート フォースすることによって、新しいパスワードを設定することができた。

Vulnerable request

POST /recover/as/code/ HTTP/1.1

Host: beta.facebook.com

lsd=AVoywo13&n=XXXXX

“n” をブルート フォースすると、任意の Facebook ユーザーに新しいパスワードを設定することができました。

Disclosure Timeline

Feb 22nd, 2016 : Facebookチームにレポートを送信しました。

Feb 23rd, 2016 : 私の方で修正を確認しました。

March 2nd, 2016 : Bounty of $15,000 awarded by Facebook

.