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



。 これで、メールが被害者のアカウントに追加され、「パスワードを忘れた」機能を使用してアクセスできます。



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






All Articles