Hello there, ('ω')ノ
🧪 ラボ概要
このラボでは、ログインページのエラーメッセージの違いを利用して有効なユーザー名を特定し、その後、パスワードのブルートフォース攻撃を行ってアカウントにアクセスする方法を学びます。
🛠️ 手順解説
1. 無効な資格情報でログイン試行
- Burp Suiteを起動し、ブラウザでラボのログインページにアクセスします。
- 任意の無効なユーザー名とパスワード(例:
invalidUser
/invalidPass
)を入力してログインを試みます。
2. Burp Suiteでリクエストをインターセプト
- Burp Suiteの「Proxy」タブで「Intercept」をオンにします。
- ログイン試行時の
POST /login
リクエストをキャプチャし、「HTTP history」から該当リクエストを右クリックして「Send to Intruder」を選択します。
3. ユーザー名の列挙
- 「Intruder」タブで、
username
パラメータが§
で囲まれていることを確認します。 - 攻撃タイプを「Sniper」に設定します。
- 「Payloads」タブで、提供された候補ユーザー名リストをペーストします。
- 「Start attack」をクリックして攻撃を開始します。
4. 有効なユーザー名の特定
- 攻撃結果の「Length」列を確認し、他と異なる長さのレスポンスを探します。
- 該当するレスポンスを選択し、エラーメッセージが「Invalid username」ではなく「Incorrect password」となっていることを確認します。
- このユーザー名が有効である可能性が高いです。
5. パスワードのブルートフォース攻撃
- 「Intruder」タブで既存のペイロードポジションをクリアし、
password
パラメータを§
で囲みます。 - 「Payloads」タブで、提供された候補パスワードリストをペーストします。
- 「Start attack」をクリックして攻撃を開始します。
6. 正しいパスワードの特定
- 攻撃結果の「Status」列を確認し、他と異なるステータスコード(例:
302
)のレスポンスを探します。 - 該当するパスワードが正しい可能性が高いです。
7. アカウントへのログイン
- 特定した有効なユーザー名とパスワードを使用してログインし、アカウントページにアクセスします。
📝 ポイントとコツ
- エラーメッセージの違いを利用してユーザー名の存在を推測します。
- レスポンスの長さやステータスコードの違いも有効な手がかりとなります。
- ブルートフォース攻撃時には、レスポンスの違いを注意深く観察し、成功の兆候を見逃さないようにします。
🔒 防御策のポイント
- ログイン時のエラーメッセージは、**一律に「ユーザー名またはパスワードが無効です」**と表示し、詳細を明かさないようにします。
- レスポンスの長さやステータスコードを統一し、攻撃者に手がかりを与えないようにします。
- アカウントロックやCAPTCHAなどの対策を導入し、ブルートフォース攻撃を防ぎます。
Best regards, (^^ゞ