Burp Intruderは、Webサイトに対して高度にカスタマイズされた自動攻撃を行う強力なツールです。同じリクエストを何度も送信し、定義された位置に毎回異なるペイロードを挿入する攻撃を設定できます。特に、Intruderを次のように使えます:
Burp Intruderの仕組みを理解するには、実際に見てみるのが最善です。次のチュートリアルに沿って、初めてのIntruder攻撃を行えます。
Burp Intruderの機能や攻撃タイプの詳細は、Burp Intruderの代表的な使用方法を参照してください。
このチュートリアルでは、Webセキュリティアカデミーにある意図的に脆弱性を作り込んだラボを使用して、Intruder攻撃の基本的な設定を学びます。
Burpブラウザを開き、次のURLにアクセスします:
https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-different-responses
Access the labをクリックしプロンプトが表示されたら、自分のPortSwiggerアカウントでログインします。すると、意図的に脆弱性を作り込んだあなた専用のブログサイトが開きます。
My accountをクリックし、無効なユーザ名とパスワードでログインしてみます。
Burp Suiteで、Proxy > HTTP履歴タブを開きます。ここには、Burpブラウザを開いた後の、すべてのリクエストが表示されます。
POST /login
リクエストを探し、Burp Intruderに送信します。
Intruderタブに移動します。POST /login
リクエストが表示されたタブがあることを確認してください。これを攻撃のベースリクエストとして使用します。
Burp Intruderが、リクエスト全体のさまざまな位置に§文字を自動的に挿入していることに注目してください。これらは、ペイロードポジションの最初と最後を示していて、Burp Intruderは攻撃中にここにペイロードを挿入しようとします。
この攻撃では、username
パラメータにペイロードポジションが1つだけ必要です。§クリアをクリックし、デフォルトのポジションを消します。
username
パラメータの値を選択し、§追加をクリックします。
画面上部で、さまざまな攻撃タイプを選択できます。とりあえず、スナイパー(Sniper)になっていることを確認してください。
スナイパー攻撃は、1セットのペイロードを1つずつ、リクエスト内の1つ以上のポジションに挿入します。
あとは、使用するペイロードのリストを設定するだけです。今回のデモでは、さまざまなユーザ名でリクエストを送信し、ログイン機能の動作をテストをしてみます。
次のユーザ名候補のリストをコピーしてください:
ペイロードタブに移動します。
ペイロードタイプは、単純リストのままにしておきます。
ペイロードオプションセクションで、貼り付けをクリックしてコピーしたユーザ名を一覧に追加します。
ペイロードセットセクションで、追加したペイロード数と、この攻撃で送信されるリクエスト数を確認できます。今回の攻撃では、次のように表示されます: ペイロード数: 101 / リクエスト数: 101
。
右上の攻撃開始をクリックします。新しい攻撃ウィンドウが開き、Burp Intruderが生成している各リクエストを確認できます。
テーブル内のエントリを選択すると、リクエストとレスポンスをメッセージエディタで確認できます。各リクエストのusername
パラメータには、ペイロードリストにあった異なる値が入力されていることに注目してください。
攻撃ウィンドウには、各レスポンスの主要な情報が表示された複数の列があります。
攻撃が終了するのを待ち、Length列の見出しをクリックすると、結果がソートされます。見た通り、1つのレスポンスは長さが違います。
サーバからのこのレスポンスの違いは、さらに調査する価値があります。
リスト内で任意のリクエストを選択すると、メッセージエディタに表示されます。
レスポンスを見てみると、ほとんどのレスポンスにはInvalid username
というエラーメッセージが含まれていますが、長さが異なっていたレスポンスにはIncorrect password
というエラーメッセージが含まれています。
この反応の違いは、このユーザ名が有効である可能性を強く示唆しています。
正しそうなユーザ名がわかったので、次のステップは当然、パスワードのブルートフォースです。
特定したユーザ名と、このパスワード候補のリストを使って、この攻撃を繰り返してみてください。
ラボの完全な突破方法はこちらを参照してください。
これで、単一のパラメータに対するスナイパー攻撃タイプの使用方法を学びました。