# 2FA/OTP バイパス
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 * [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
## **2要素認証のバイパス** ### **直接バイパス** 2FAをバイパスするには、単に**次のエンドポイントに直接アクセス**してみてください(次のエンドポイントのパスを知る必要があります)。これが機能しない場合は、2FAページから来たかのように**リファラーヘッダー**を変更してみてください。 ### **トークンの再利用** 以前にアカウント内で使用されたトークンを再利用して認証することができるかもしれません。 ### 未使用のトークンの共有 アカウントからトークンを取得し、別のアカウントで2FAをバイパスするために使用してみてください。 ### リークしたトークン トークンはWebアプリケーションのレスポンスで漏洩しているかどうかを確認してください。 ### メールの確認リンク アカウント作成時に受け取った**メールの確認リンク**を使用して、2FAが設定されていてもそのリンクだけでプロフィールにアクセスできるか試してみてください([記事](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b))。 ### セッションの権限 同じセッションを使用して、自分のアカウントと被害者のアカウントでフローを開始します。両方のアカウントで2FAポイントに到達したら、自分のアカウントで2FAを完了させずに次のステップに被害者のアカウントのフローでアクセスしようとしてみてください。バックエンドがセッション内のブール値を設定して、2FAを正常にパスしたことを示している場合、被害者の2FAをバイパスすることができます。 ### **パスワードリセット機能** ほとんどのWebアプリケーションでは、パスワードリセット機能はリセット手順が完了した後にユーザーを自動的にアプリケーションにログインさせます。メールが送信され、パスワードをリセットするためのリンクが含まれているかどうか、また、被害者がメールアドレスを変更してもそのリンクを再利用してパスワードをリセットできるかどうかを確認してください。 ### OAuth 信頼された**OAuth**プラットフォーム(Google、Facebook...)でユーザーのアカウントを妥協できる場合 ### ブルートフォース #### レート制限の不足 試行することができるコードの数に制限がある場合、単純にブルートフォースできます。潜在的な「サイレント」レート制限に注意して、本物のコードを確認するためにいくつかのコードを試してから本物のコードを試してください。 #### フローレート制限があるがレート制限がない場合 この場合、フローレート制限があります(非常にゆっくりとブルートフォースする必要があります:1つのスレッドと2回の試行前に一定時間スリープします)、しかしレート制限はありません。十分な時間があれば、有効なコードを見つけることができます。 #### コードの再送信と制限のリセット レート制限があるが、「コードを再送信」すると同じコードが送信され、レート制限がリセットされます。そのため、コードを再送信する間にコードをブルートフォースして、レート制限に達しないようにすることができます。 #### クライアント側のレート制限バイパス {% content-ref url="rate-limit-bypass.md" %} [rate-limit-bypass.md](rate-limit-bypass.md) {% endcontent-ref %} #### ユーザーアカウントのレート制限の不足 アカウント内のアクション(メールの変更、パスワードなど)のために2FAを設定できる場合があります。ただし、ログインしようとしたときにレート制限がある場合でも、アカウント内のアクションを保護するためのレート制限はありません。 #### SMS経由でのコード再送信のレート制限の不足 2FAをバイパスすることはできませんが、会社のお金を無駄にすることはできます。 #### 無限のOTP再生成 新しいOTPを無限に生成でき、OTPが十分に単純(4桁の数字)であり、生成されたOTPごとに4つまたは5つのトークンを試すことができる場合、同じ4つまたは5つのトークンを毎回試して、使用しているトークンと一致するまでOTPを生成し続けることができます。 ### レースコンディション 次のページの2FAバイパスのセクションを確認してください: {% content-ref url="race-condition.md" %} [race-condition.md](race-condition.md) {% endcontent-ref %} ### CSRF/クリックジャッキング 2FAを無効にするためのCross Site Request Forgery(CSRF)またはクリックジャッキングの脆弱性があるかどうかを確認してください。 ### ログイン状態の保持機能 #### 推測可能なクッキー 「私を覚えておく」機能が推測可能なコードを使用して新しいクッキーを使用している場合、それを推測してみてください。 #### IPアドレス 「私を覚えておく」機能があなたのIPアドレスに関連付けられている場合、被害者のIPアドレスを特定し、**X-Forwarded-For**ヘッダーを使用してそれをなりすますことができます。 ### 古いバージョン #### サブドメイン ログイン機能を持つ「テスト」サブドメインを見つけることができれば、それらは2FAをサポートしていない古いバージョンを使用している可能性があります(そのため、直接バイパスされます)またはそれらのエンドポイントは脆弱なバージョンの2FAをサポートしている可能性があります。 #### API 2FAが/v\*/ディレクトリ(例:"/v3/"のような)の下にあるAPIを使用していることがわかった場合、おそらく脆弱なバージョンの2FAをバイパスすることができる古いAPIエンドポイントが存在する可能性があります。 ### 前のセッション 2FAが有効になっている場合、作成された前のセッションは終了する必要があります。これは、クライアントがアカウントを侵害された場合、2FAを有効にして保護する可能性があるが、前のセッションが終了されていない場合、これは彼を保護しないからです。 ### バックアップコードへの不適切なアクセス制御 バックアップコードは2FAが有効になった直後に生成され、単一のリクエストで利用できます。リクエストごとにコードを再生成するか変更しない(静的コード)かは、その後のリクエストの応答からバックアップコードを「引っ張る」ことができるCORSの誤構成/XSSの脆弱性や他のバグがある場合、攻撃者はコードを盗み、ユーザー名とパスワードがわかっている場合に2FAをバイパスすることができます。 ### 情報開示 2FAページに以前知らなかった機密情報(電話番号など)が表示される場合、これは情報開示の脆弱性と見なされる可能性があります。 ### **パスワードリセット == 2FA無効化** 1. アカウントを作成し、2FAをオンにします。 2. そのアカウントからログアウトします。 3. 今、パスワードリセットページに移動します。 4. パスワードを変更します。 5. 今度はログインしようとします。 6. 2FAコードの入力を求められない場合、報告できます。 ## 参考文献 {% embed url="https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35" %} {% embed url="https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!** * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクション * [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**