Best regards, ('ω')ノ
複数の設定ミスの話を。
脆弱性:
アカウントの乗っ取り
OAuth
OTP バイパス
パスワードのリセット
記事:
https://infosecwriteups.com/bugcrowd-tale-of-multiple-misconfigurations-cb5b98f09302
今回は、ドメインで見つかった設定ミスに関する記事で。
これは非公開のプログラムなので、redacted.com と呼ぶことに。
アプリケーションの範囲は膨大でしたが、通常のサブドメイン スキャンと。
これらすべての高度な偵察から始めて。
メイン アプリケーションのテストを開始することにし。
Web アプリケーションは、多くの取引があるシンプルな E コマース Web サイトで。
チェックしようとしているのですが、今回は認証の仕組みに目が留まり。
ということで、まずはアカウント作成して。
気づいたのは OAuth メカニズムで。
メールサインアップ
そこで、Pentest Book の美しい方法論と 2 つ目のダミー アカウントを使用して。
OAuth の脆弱性のチェックを開始しましたが、何も見つからず。
基本的な脆弱性チェックが忘れられていて。
さっそくダミーアカウントとBoomを使ってOAuthアカウントを作ってみたところ。
同じメールIDで2つのアカウントを作ることができて。
https://pentestbook.six2dez.com/enumeration/webservices/oauth#bugs
メールサインアップを使用して作成されたアカウント
同じ電子メールを使用した OAUTH ログイン
アカウント乗っ取り前の Oauth の構成ミス
手順全体を要約すると、次の手順が実行され。
1.Web サイトにアクセスし、[サインアップ] をクリックして。
2.未登録の被害者の電子メール (test@gmail.com など) を使用して。
アカウントを作成し。
3.OAuth メカニズムを使用し、同じ OAuth アカウントを使用して。
別のアカウントを作成して。
影響:
電子メールとパスワードを使用して作成されたアカウントは無効になるはずですが。
無効にならないということは、攻撃者が電子メールを使用して。
アカウントを作成するときに使用した資格情報を使用して。
ログインできることを意味し、アカウントの事前乗っ取りにつながって。
もっと探すと今回、パスワードを忘れる機能が目に留まり。
パスワードのリセットメカニズムは次のとおりで。
1.ユーザは自分の電子メールを入力し。
2.6桁のOTPが生成され、ユーザの電子メールに送信され。
3.ユーザが新しいパスワードを設定して。
認証バイパスを試して、被害者のパスワードを変更できるかどうかを確認すると。
メールを入力して OTP を要求し、間違った OTP を入力し。
応答をキャプチャして応答操作を試みましたが、うまくいかず。
しかし、アプリケーションが ajax を使用して。
パスワードのリセットを実行していることがわかり。
AJAX を使用すると、バックグラウンドでサーバと少量のデータを。
交換することにより、Web ページを非同期に更新できて。
手順:
1.サインイン ページに移動し、[パスワードを忘れた場合] をクリックし。
2.攻撃者のメールを入力して。
自分のメールアドレスは attacker@gmail.com で。
3.次に、attacker@gmail.com で受信した正しい OTP を入力し。
応答をキャプチャして保存し。
4.新しいパスワードの設定ページにリダイレクトされますが。
代わりにパスワードを設定しないで。
再度サインイン ページに移動し、[パスワードを忘れた場合] をクリックして。
5.被害者のメールアドレスを入力して。
例:victim@gmail.com (この場合は aadesh004@protonmail.com )
被害者の電子メールを入力
6.ランダムな OTP、つまり 000000 を入力し、Burp Suiteを使用してリクエストを。
インターセプトして。
ランダムOTPを入力
7.応答で、応答を次のように操作して。
{"successTextKey":"success","errors":null}
生成された応答
応答操作
8.リクエストを転送すると、新しいパスワードの設定にリダイレクトされ。
今度はパスワードを設定してアカウントを乗っ取って。
新しいパスワードを設定
アカウント乗っ取り
Best regards, (^^ゞ