ソース: https://hacktivator.medium.com/bugbounty-account-takeover-via-facebook-oauth-67b454696c0f
訳:
まず最初に、Oauth について少し知っておきましょう。
Facebook、Google、またはその他のサービス経由で登録できる Web ページを見たことはありますか? 「はい」の場合は、Oauth の使用方法をすでに知っています。
簡単に言えば、Oauth は、ユーザーがサードパーティ Web サイト (例: Facebook、Google、Apple、Twitter など) 経由で登録またはログインできるようにする Web アプリケーションの機能です。
oauth の動作を示す簡単な例を 1 つ示します。
したがって、「Facebook でログイン」またはその他のものをクリックすると、舞台裏で次のことが行われます。
1- Web アプリケーションはサーバー (たとえば、google.com) にリクエストを送信します。
2- ユーザーは自分の Google アカウントをクリックします。
3- Google サーバーは資格情報を検証し、アクセス トークン コードを Web アプリケーションに送り返します。
4- Web アプリケーションがトークンを検証し、最終的にログインまたは登録が行われます。 (ここで脆弱性を発見しました)
脆弱性について:
プライベートプログラム(hackedprogram.comとしましょう)を探していました、そして理由はわかりませんが、メインドメインから始めました。
最初に行うことは、認証機能 (ログイン、登録、oauth など) とパスワード リセット機能を探すことです。
次に、登録機能のテストを開始したところ、次のことがわかりました。
1- 従来の方法(フォーム入力)でも登録可能です
2- Facebook Oauth を使用できます
最初は通常の登録方法(フォーム経由)で何かを見つけようとしましたが、良いものが見つかりませんでした。その後、Facebook Oauth 実装のテストに移りました。
そして、これが私が見つけたものです:
1- Facebook サーバーがコードを Web アプリケーションに送信すると、サーバーは 電子メール と 名前の パラメーターを使用してユーザーをデータベースに追加し。
2- 名前 と 電子メールの パラメータがサーバー側で適切に検証されていなく。
これら 2 つのことを知ったので、oauth 機能を使用して再度登録を開始しましたが、今回は 名前 と メール パラメータをそれぞれ Hacked Account と Victoriaaccount@gmail.com に変更しました。
元のリクエスト
変更されたリクエスト
そして、このリクエストを転送した後、次のような応答を受け取りました。
成功した応答
そして確認のために。
ほなほな。