Facebook CSRFのクローズされた脆弱性

画像

この脆弱性はJosipFranjkovićによって発見され、約2か月前に排除されました。昨日、作者はpyx.ioブログでそのことについて話しました 。 このバグはDan Melamedのfindと類似しています

悪用には、Facebookアカウント、Outlook.comのメール、および被害者が必要でした。 同時に、OutlookのメールがFacebookアカウントにリンクされていないはずです。

Facebookには、Facebookの連絡先を検索する機能があり、連絡先リストから連絡先を招待して、アカウントにメールを追加します。

FacebookがOutlookの連絡帳へのアクセスを許可すると、GET要求が
m.facebook.com/contact-importer/login/?api_instance=1&api_ver=wave5&auth_token=TOKEN
アカウントにメールが追加されます。

著者が受け取った有効なトークン:
 {"code":"2c59ed24-8674-a76a-3232-6fse0d6d5cc7", "redirect_uri":"https://www.facebook.com/accept_token.php?api_ver=wave5&csrf=AQDt6cT& appdata={"use_case":1,"type":1,"flow":30,"domain_id":4,"tracked_params":"[]","enc_uid":"AdjjCVjSQ3I1RFRllRz81ohsy737W7oipkrAYKmCYISHLHcmzi55G4GaGckcSCP97t0", "post_login_redirect":"https:\/\/m.facebook.com\/contact-importer\/login\/?api_instance=1&api_ver=wave5"}"} 

このリクエストにはチェックがなかったため、必要なだけ繰り返すことができました。 問題は、同じ方法が他のユーザーに有効だったことです。

潜在的な攻撃者のアクションのアルゴリズムは次のとおりです。すべてのリクエストを記録しながら、アカウントから「Facebookの連絡先を検索」を使用します。 /contact-importer/loginへのリクエストを見つけ、アカウントから追加された電子メールを解き、何らかの方法で被害者に/contact-importer/loginへのリクエストを強制し/contact-importer/login 。 これで、メールが被害者のアカウントに追加され、「パスワードを忘れた」機能を使用してアクセスできます。

エクスプロイトデモビデオ:

Source: https://habr.com/ru/post/J198236/


All Articles