「BugBounty: Account Takeover via Facebook Oauth」からOAuth authenticationを学ぶ

ソース: https://hacktivator.medium.com/bugbounty-account-takeover-via-facebook-oauth-67b454696c0f

 

脆弱性:Broken Access Control

 

訳:

まず最初に、Oauth について少し知っておきましょう。

 

FacebookGoogle、またはその他のサービス経由で登録できる Web ページを見たことはありますか? 「はい」の場合は、Oauth の使用方法をすでに知っています。

簡単に言えば、Oauth は、ユーザーがサードパーティ Web サイト (例: FacebookGoogleAppleTwitter など) 経由で登録またはログインできるようにする 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 に変更しました。

 

元のリクエス

 

変更されたリクエス

 

そして、このリクエストを転送した後、次のような応答を受け取りました。

 

成功した応答

そして確認のために。

 

 

ほなほな。