Burp Suite で Intruder にリクエストを送信する

Beginner
オンラインで実践に進む

はじめに

Burp Suite Intruder は、Web アプリケーションに対するカスタマイズされた攻撃を自動化するための強力なツールです。非常に柔軟性が高く、単純なファジングから複雑な列挙まで、幅広いタスクを実行するために使用できます。

Intruder を使用する上で最初かつ最も基本的なステップは、リクエストを選択し、設定のためにツールに送信することです。この実験では、Burp Proxy を使用してパラメータを含むリクエストをキャプチャし、それを Intruder ツールに送信する方法を学びます。これは、Intruder を使用してあらゆる種類の攻撃を実行するための基本的なスキルです。

プロキシ履歴からパラメータを含むリクエストを見つける

このステップでは、ログインフォームを送信して Web トラフィックを生成し、その結果のリクエストを Burp Suite のプロキシ履歴から見つけます。このキャプチャされたリクエストを、以降の作業で使用します。

まず、リクエストを生成しましょう。

  1. デスクトップまたはアプリケーションメニューから Web ブラウザアプリケーションを開きます。
  2. ブラウザのアドレスバーに http://127.0.0.1:8000 と入力してアクセスします。シンプルなログインページが表示されるはずです。
  3. フォームには testusertestpass が事前入力されています。「Submit」ボタンをクリックします。
  4. ブラウザには「Invalid Credentials」と表示されますが、これは想定通りの動作です。重要なのは、これでパラメータ付きの POST リクエストが送信されたということです。

次に、このリクエストを Burp Suite で見つけましょう。

  1. Burp Suite のウィンドウに切り替えます。
  2. 「Proxy」タブをクリックします。
  3. 「Proxy」タブ内で、「HTTP history」サブタブをクリックします。
  4. ブラウザが Burp を経由して行ったすべてのリクエストのリストが表示されます。「Method」列に POST、「URL」列に /login と表示されているリクエストを探します。それをクリックして選択します。

リクエストを選択すると、その完全な内容を下のパネルで確認できます。これには、送信した username および password パラメータも含まれています。

リクエストを右クリックし、「Send to Intruder」を選択する

このステップでは、プロキシ履歴からキャプチャした POST /login リクエストを Intruder ツールに送信します。この操作により、リクエストが Intruder にコピーされ、そこで攻撃を設定できるようになります。

  1. Proxy > HTTP history テーブルで、POST /login リクエストがまだハイライトされていることを確認します。
  2. そのリクエストの行のどこかを右クリックして、コンテキストメニューを開きます。
  3. コンテキストメニューで、オプションのリストを下に移動し、「Send to Intruder」をクリックします。

または、リクエストを選択してキーボードショートカット Ctrl+I を使用することもできます。

「Send to Intruder」をクリックした後、プロキシタブに即座の変化はありませんが、ウィンドウ上部のメインの Intruder タブがオレンジ色に変わり、新しいリクエストを受け取ったこと、そして対応の準備ができたことを示します。

Intruder > Positions タブに移動する

このステップでは、Intruder ツールに移動して、先ほど送信したリクエストを表示します。「Positions」タブはデフォルトのビューであり、攻撃中にリクエストのどの部分を変更するかを定義します。

  1. Burp Suite ウィンドウ上部のメインタブを確認します。「Intruder」タブが現在ハイライトされている(通常はオレンジ色)はずです。
  2. 「Intruder」タブをクリックして、Intruder ツールに切り替えます。

デフォルトでは、「Positions」サブタブに移動します。この画面は主に 2 つの部分に分かれています。上部にはターゲット情報(Host と Port)、下部にはリクエストエディタがあり、プロキシから送信したリクエストが表示されます。ここで攻撃パラメータを設定します。

自動的に特定されたペイロード位置を確認する

このステップでは、Burp Suite がリクエスト内の潜在的なペイロード位置をどのように自動的に特定するかを確認します。これらの位置は、攻撃中に Intruder がペイロードを挿入する場所です。

リクエストが Intruder に送信されると、Burp Suite はそれを自動的に分析し、攻撃したい可能性のある部分を推測します。これらの部分は「ペイロード位置」としてマークされます。

「Intruder」>「Positions」タブのリクエストエディタを確認します。「username」および「password」パラメータの値がハイライトされ、特殊な記号 § で囲まれていることがわかります。

リクエストボディは以下のようになります。

username=§testuser§&password=§testpass§

§...§ の各ペアは、単一のペイロード位置を定義します。ここでは、ユーザー名用とパスワード用の 2 つの位置が自動的に作成されています。画面の右側には、「Attack type」がデフォルトで Sniper に設定されていることがわかります。これは、一度に 1 つの位置に対してペイロードを反復処理します。

この自動検出は便利な開始点ですが、多くの攻撃では位置を手動で定義することになります。

「Clear §」ボタンを使用してデフォルトの位置をクリアする

このステップでは、自動的に定義されたペイロード位置をクリアする方法を学びます。これは、すべてのパラメータではなく、パスワードフィールドのみをテストするなど、よりターゲットを絞った攻撃を設定したい場合に重要なステップです。

リクエストエディタの右側には、「Add §」、「Clear §」、「Auto §」、「Refresh」というボタンのセットがあります。

  1. 「Clear §」ボタンを探します。
  2. 「Clear §」ボタンをクリックします。

クリックすると、リクエストエディタからすべてのハイライトと § 記号が削除されていることがわかります。リクエストボディは、以下のようにクリーンな状態になります。

username=testuser&password=testpass

これで、リクエストの特定の部分(testpass の値など)を自分で手動で選択し、「Add §」ボタンを使用して独自のカスタムペイロード位置を定義する準備が整いました。これにより、攻撃を完全に制御できます。

まとめ

この実験では、Burp Suite Intruder の使用に関する最初の重要なステップをすべて習得しました。

まず、Web ブラウザでトラフィックを生成し、「Proxy」履歴で特定の POST リクエストを見つけました。次に、そのリクエストを Intruder ツールに送信する方法を学びました。最後に、Burp Intruder がペイロード位置を自動的にマークする方法と、カスタム攻撃設定の準備のためにこれらのデフォルトをクリアする方法を確認しました。

このワークフローを習得することは、Web アプリケーションのセキュリティテストのために Burp Intruder のパワーを活用するための基本となります。