hacktricks/src/pentesting-web/2fa-bypass.md

132 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2FA/MFA/OTP バイパス
{{#include ../banners/hacktricks-training.md}}
## **強化された二要素認証バイパステクニック**
### **直接エンドポイントアクセス**
2FAをバイパスするには、次のエンドポイントに直接アクセスします。パスを知ることが重要です。失敗した場合は、**Referrerヘッダー**を変更して2FA検証ページからのナビゲーションを模倣します。
### **トークン再利用**
アカウント内で以前に使用されたトークンを再利用することが効果的です。
### **未使用トークンの利用**
自分のアカウントからトークンを抽出して、別のアカウントの2FAをバイパスすることを試みることができます。
### **トークンの露出**
トークンがウェブアプリケーションからのレスポンスに開示されているかどうかを調査します。
### **検証リンクの悪用**
**アカウント作成時に送信されるメール検証リンク**を使用することで、2FAなしでプロファイルにアクセスできる場合があります。詳細は[投稿](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b)で強調されています。
### **セッション操作**
ユーザーと被害者のアカウントの両方のセッションを開始し、ユーザーのアカウントの2FAを完了せずに、被害者のアカウントフローの次のステップにアクセスを試みることで、バックエンドのセッション管理の制限を悪用します。
### **パスワードリセットメカニズム**
パスワードリセット機能を調査し、同じリンクを使用して複数回リセットできる可能性があるかどうかを確認することが重要です。新しくリセットされた資格情報でログインすることで、2FAをバイパスできるかもしれません。
### **OAuthプラットフォームの妥協**
信頼された**OAuth**プラットフォームGoogle、Facebookでユーザーのアカウントを妥協させることで、2FAをバイパスするルートを提供できます。
### **ブルートフォース攻撃**
#### **レート制限の欠如**
コード試行の数に制限がないため、ブルートフォース攻撃が可能ですが、潜在的なサイレントレート制限を考慮する必要があります。
レート制限が存在する場合でも、有効なOTPが送信されたときのレスポンスが異なるかどうかを確認するべきです。[**この投稿**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732)では、バグハンターが20回の失敗した試行の後にレート制限がトリガーされ、401で応答された場合でも、有効なものが送信されたときには200のレスポンスが受信されたことを発見しました。
#### **スローブルートフォース**
フローレート制限が存在する場合、全体的なレート制限がないスローブルートフォース攻撃が可能です。
#### **コード再送信制限のリセット**
コードを再送信するとレート制限がリセットされ、ブルートフォース試行を継続できます。
#### **クライアントサイドレート制限の回避**
クライアントサイドのレート制限をバイパスするための技術が文書化されています。
#### **内部アクションにレート制限がない**
レート制限はログイン試行を保護するかもしれませんが、内部アカウントアクションには適用されない場合があります。
#### **SMSコード再送信のコスト**
SMS経由でのコードの過剰な再送信は、会社にコストがかかりますが、2FAをバイパスするわけではありません。
#### **無限OTP再生成**
単純なコードで無限のOTP生成が可能であり、小さなコードセットを再試行することでブルートフォースが可能です。
### **レースコンディションの悪用**
2FAバイパスのためのレースコンディションの悪用は、特定の文書に記載されています。
### **CSRF/クリックジャッキングの脆弱性**
CSRFまたはクリックジャッキングの脆弱性を探求して2FAを無効にすることは、実行可能な戦略です。
### **「ログイン状態を保持」機能の悪用**
#### **予測可能なクッキー値**
「ログイン状態を保持」クッキーの値を推測することで制限をバイパスできます。
#### **IPアドレスの偽装**
**X-Forwarded-For**ヘッダーを通じて被害者のIPアドレスを偽装することで制限をバイパスできます。
### **古いバージョンの利用**
#### **サブドメイン**
サブドメインをテストすることで、2FAサポートがない古いバージョンや脆弱な2FA実装を使用する可能性があります。
#### **APIエンドポイント**
/v\*/ディレクトリパスで示される古いAPIバージョンは、2FAバイパスメソッドに対して脆弱である可能性があります。
### **以前のセッションの取り扱い**
2FAが有効化された際に既存のセッションを終了させることで、侵害されたセッションからの不正アクセスを防ぎます。
### **バックアップコードに関するアクセス制御の欠陥**
2FAが有効化された際にバックアップコードが即座に生成され、潜在的に不正に取得されるリスクが、特にCORSの誤設定/XSSの脆弱性がある場合に存在します。
### **2FAページでの情報開示**
2FA検証ページでの機密情報の開示電話番号は懸念事項です。
### **パスワードリセットによる2FAの無効化**
アカウント作成、2FAの有効化、パスワードリセット、そしてその後の2FA要件なしのログインを示すプロセスが、潜在的なバイパス方法を示しています。
### **デコイリクエスト**
デコイリクエストを利用してブルートフォース試行を隠蔽したり、レート制限メカニズムを誤解させたりすることで、バイパス戦略に別の層を追加します。このようなリクエストを作成するには、アプリケーションのセキュリティ対策とレート制限の挙動に対する微妙な理解が必要です。
### OTP構築エラー
OTPがユーザーが既に持っているデータに基づいて作成される場合、またはOTPを作成するために以前に送信されたデータに基づいている場合、ユーザーがそれを生成してバイパスすることが可能です。
## 参考文献
- [https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35](https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/%22https:/medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35%22/README.md)
- [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
- [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116_1d0f6ce59992222b0812b7cab19a4bce)
P
{{#include ../banners/hacktricks-training.md}}