Burp Intruder入門

Burp Intruderは、Webサイトに対して高度にカスタマイズされた自動攻撃を行う強力なツールです。同じリクエストを何度も送信し、定義された位置に毎回異なるペイロードを挿入する攻撃を設定できます。特に、Intruderを次のように使えます:

Burp Intruderの仕組みを理解するには、実際に見てみるのが最善です。次のチュートリアルに沿って、初めてのIntruder攻撃を行えます。

Burp Intruderの機能や攻撃タイプの詳細は、Burp Intruderの代表的な使用方法を参照してください。

チュートリアル

このチュートリアルでは、Webセキュリティアカデミーにある意図的に脆弱性を作り込んだラボを使用して、Intruder攻撃の基本的な設定を学びます。

ステップ1: ラボへアクセスする

Burpブラウザを開き、次のURLにアクセスします:

https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-different-responses

Access the labをクリックしプロンプトが表示されたら、自分のPortSwiggerアカウントでログインします。すると、意図的に脆弱性を作り込んだあなた専用のブログサイトが開きます。

ステップ2: ログインしてみる

My accountをクリックし、無効なユーザ名とパスワードでログインしてみます。

無効なユーザ名とパスワードでログイン

Burp Suiteで、Proxy > HTTP履歴タブを開きます。ここには、Burpブラウザを開いた後の、すべてのリクエストが表示されます。

POST /loginリクエストを探し、Burp Intruderに送信します。

ステップ3: ペイロードポジションを設定する

Intruderタブに移動します。POST /loginリクエストが表示されたタブがあることを確認してください。これを攻撃のベースリクエストとして使用します。

Burp Intruderが、リクエスト全体のさまざまな位置に§文字を自動的に挿入していることに注目してください。これらは、ペイロードポジションの最初と最後を示していて、Burp Intruderは攻撃中にここにペイロードを挿入しようとします。

未編集のリクエスト

この攻撃では、usernameパラメータにペイロードポジションが1つだけ必要です。§クリアをクリックし、デフォルトのポジションを消します。

usernameパラメータの値を選択し、§追加をクリックします。

ペイロードマーカ付きリクエスト

ステップ4: 攻撃タイプを選択する

画面上部で、さまざまな攻撃タイプを選択できます。とりあえず、スナイパー(Sniper)になっていることを確認してください。

スナイパーが選択された攻撃タイプメニュー

スナイパー攻撃は、1セットのペイロードを1つずつ、リクエスト内の1つ以上のポジションに挿入します。

ステップ5: ペイロードを追加する

あとは、使用するペイロードのリストを設定するだけです。今回のデモでは、さまざまなユーザ名でリクエストを送信し、ログイン機能の動作をテストをしてみます。

次のユーザ名候補のリストをコピーしてください:

ペイロードタブに移動します。

ペイロードタイプは、単純リストのままにしておきます。

ペイロードオプションセクションで、貼り付けをクリックしてコピーしたユーザ名を一覧に追加します。

ペイロードセットセクションで、追加したペイロード数と、この攻撃で送信されるリクエスト数を確認できます。今回の攻撃では、次のように表示されます: ペイロード数: 101 / リクエスト数: 101

ユーザ名を読み込んだペイロードセット

ステップ6: 攻撃を開始する

右上の攻撃開始をクリックします。新しい攻撃ウィンドウが開き、Burp Intruderが生成している各リクエストを確認できます。

テーブル内のエントリを選択すると、リクエストとレスポンスをメッセージエディタで確認できます。各リクエストのusernameパラメータには、ペイロードリストにあった異なる値が入力されていることに注目してください。

リクエストの内容を見る

ステップ7: 異常な反応を探す

攻撃ウィンドウには、各レスポンスの主要な情報が表示された複数の列があります。

攻撃が終了するのを待ち、Length列の見出しをクリックすると、結果がソートされます。見た通り、1つのレスポンスは長さが違います。

長さでソートした履歴一覧

サーバからのこのレスポンスの違いは、さらに調査する価値があります。

ステップ8: レスポンスを調べる

リスト内で任意のリクエストを選択すると、メッセージエディタに表示されます。

レスポンスを見てみると、ほとんどのレスポンスにはInvalid usernameというエラーメッセージが含まれていますが、長さが異なっていたレスポンスにはIncorrect passwordというエラーメッセージが含まれています。

この反応の違いは、このユーザ名が有効である可能性を強く示唆しています。

2種類のエラーメッセージの比較

次は?

正しそうなユーザ名がわかったので、次のステップは当然、パスワードのブルートフォースです。

特定したユーザ名と、このパスワード候補のリストを使って、この攻撃を繰り返してみてください。

パスワードのブルートフォース

ラボの完全な突破方法はこちらを参照してください。

Burp Intruderの詳細

これで、単一のパラメータに対するスナイパー攻撃タイプの使用方法を学びました。