2FA/MFA/OTP Bypass

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

Enhanced Two-Factor Authentication Bypass Techniques

Direct Endpoint Access

2FAをバイパスするには、次のエンドポイントに直接アクセスする。パスを把握することが重要である。成功しない場合は、Referrer headerを変更して2FA検証ページからの遷移を偽装する。

Token Reuse

既に使用されたトークンを同じアカウント内で再利用して認証を行うことは有効な場合がある。

Utilization of Unused Tokens

自分のアカウントからトークンを抽出して、別のアカウントの2FAを回避するために使うことを試みることができる。

Exposure of Token

トークンがWebアプリケーションのレスポンスに露出していないか確認する。

アカウント作成時に送信されるemail verification linkを利用すると、2FAなしでプロファイルにアクセスできる場合がある。詳細はpost

Session Manipulation

自身と被害者のアカウント両方でセッションを開始し、自分のアカウントでは2FAを完了させた後に先に進まない状態にすると、被害者のアカウントのフローの次ステップにアクセスできるか試すことができる。これはバックエンドのセッション管理の制約を悪用する手法である。

Password Reset Mechanism

パスワードリセット機能がリセット後にユーザを自動的にログインさせる場合、その同じリンクで複数回リセットできないかを確認することが重要である。新しくリセットした認証情報でログインすると2FAを回避できる可能性がある。

OAuth Platform Compromise

信頼されたOAuthプラットフォーム(例: Google, Facebook)上のユーザアカウントを乗っ取ることで、2FAを回避する経路が得られることがある。

Brute Force Attacks

Rate Limit Absence

コード試行回数に制限がない場合、ブルートフォース攻撃が可能になる。ただし、サイレントなレート制限が存在する可能性がある点に注意する。

Note that even if a rate limit is in place you should try to see if the response is different when the valid OTP is sent. In this post, the bug hunter discovered that even if a rate limit is triggered after 20 unsuccessful attempts by responding with 401, if the valid one was sent a 200 response was received.

Slow Brute Force

フローごとのレート制限はあるが全体的な制限がない場合、低頻度のスローブルートフォースが有効になることがある。

Code Resend Limit Reset

コードの再送がレート制限をリセットすることがあり、ブルートフォースを継続しやすくなる。

Client-Side Rate Limit Circumvention

クライアント側のレート制限を回避するための手法が文書化されている。

Internal Actions Lack Rate Limit

レート制限はログイン試行を保護していても、内部のアカウント操作には適用されていないことがある。

SMS Code Resend Costs

SMSでのコード再送を過度に行うと企業にコストが発生するが、2FA自体を回避するわけではない。

Infinite OTP Regeneration

単純なコードで無限にOTPを再生成できる場合、少数のコードを再試行することでブルートフォースが可能になる。

Race Condition Exploitation

2FA回避のためのレースコンディションの悪用については特定の文書で報告されている。

CSRF/Clickjacking Vulnerabilities

CSRFやClickjackingの脆弱性を調査して2FAを無効化する手法は有効な戦略になり得る。

“Remember Me” Feature Exploits

「Remember Me」クッキーの値を推測することで制限を回避できる可能性がある。

IP Address Impersonation

被害者のIPアドレスをX-Forwarded-Forヘッダで偽装すると制限を回避できることがある。

Utilizing Older Versions

Subdomains

サブドメインを調査すると、2FAに対応していない古いバージョンや脆弱な2FA実装が残っていることがある。

API Endpoints

/v*/ のディレクトリパスなど古いAPIバージョンは、2FAバイパスの手法に対して脆弱である可能性がある。

Handling of Previous Sessions

2FA有効化時に既存セッションを終了させることで、乗っ取られたセッションからの不正アクセスを防げる。

Access Control Flaws with Backup Codes

2FA有効化時にバックアップコードが即時生成され、それがCORSのミスコンフィギュレーションやXSS脆弱性によって不正取得されるリスクがある。

Information Disclosure on 2FA Page

2FA検証ページ上での機密情報(例:電話番号)の漏えいは問題である。

Password Reset Disabling 2FA

回避の可能性を示すプロセスとして、アカウント作成→2FA有効化→パスワードリセット→その後2FAなしでログインできる、という流れがある。

Decoy Requests

ブルートフォース試行を隠したりレート制限を欺くためにデコイリクエストを使うことは、バイパス戦略における別の手段となる。こうしたリクエストを作成するには、アプリケーションのセキュリティ対策やレート制御の挙動を精緻に理解している必要がある。

OTP Construction errors

OTPがユーザが既に持っているデータや、OTP作成のために事前に送信されるデータに基づいて生成されている場合、ユーザ自身がOTPを生成してバイパスすることが可能になる。

References

P

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする