マクロエディタ

マクロエディタで、マクロの追加や編集ができます。マクロエディタは、設定 > セッション > マクロで開けます。追加を選択して新しいマクロを追加するか、編集で既存のマクロを編集します。

マクロを記録

マクロは、Proxy履歴で取得したリクエストから生成されます。マクロを追加するには、まずこれらのリクエストを選択します。これを行うには:

Proxyインターセプトが有効になっていると、ブラウザを使ったマクロの新規記録はできません。マクロレコーダの隅にあるインターセプト有効をクリックしてインターセプトを無効にできます。

アイテム設定

マクロエディタは、マクロ内のアイテムの編集可能なリストを表示します。マクロアイテムをリストで選択し、リクエストビューアで直接変更できます。

各マクロでは一連のリクエスト内のアイテムの処理方法と、アイテム間の依存関係を指定します。この設定を編集するには、リストで該当するアイテムを選択し、アイテム設定をクリックし、マクロアイテム設定ダイアログを表示します。

cookie処理

次の設定ができます:

パラメータ処理

リクエストパラメーターの値を、マクロで設定できます。使用可能なオプションは次の通りです:

先行するレスポンスからリクエストのパラメータ値を抽出する機能は、多段階処理や、アプリケーションがCSRFトークンを積極的に使用している状況で特に有用です。

パラメータの抽出は、パラメータ名とリクエストされるURLに基づいて行われます。先行するレスポンスからパラメータ値を抽出するように指定した場合、関連するURLに送信された名前付きパラメータの元となったレスポンスを調べます。たとえば、指定されたURLが送信先になっていて、指定された名前のフィールドを含むフォームなどです。Burpが適切な出どころを見つけた場合、そのレスポンスからパラメータ値を抽出し、リクエスト内で更新します。

新しいマクロを定義すると、Burpは先行するレスポンスから値を決定できるパラメータを特定し、このような関連性を自動的に見つけようとします。たとえば、フォームフィールドの値、リダイレクト先、リンクのクエリ文字列などです。必要であれば、自動分析を無効にできます。

レスポンス内のカスタムパラメータ位置

自動パラメータマッチングは、フォームフィールドの値やリンクのクエリーストリングなど、レスポンス内の標準的なパラメータに対して動作します。場合によっては、レスポンス内の任意の場所をパラメータとして指定する必要があります。たとえば、アプリケーションがCSRFトークンをJavaScript文字列として定義し、スクリプトがこのトークンを追加して動的にリクエストを生成する場合です。このパラメータを抽出するマクロを作成するには、カスタムパラメータの位置を追加する必要があります。カスタムパラメータの位置には、レスポンスのスクリプト内にあるパラメータの場所と、後続のリクエストのパラメータ名をBurpに設定します。

カスタムパラメータを追加するには、レスポンス内のカスタムパラメータ位置セクションで追加をクリックし、カスタムパラメータ定義ダイアログを表示します。

ここから、次の指定ができます:

詳細

Burpのレスポンス抽出ルールの使い方は、レスポンス抽出ルールページを参照してください。

Burpは設定されたパラメータを、以降のマクロリクエストや、パラメータハンドリングセクションで説明したセッションハンドリングルールで処理されるリクエストで使用できるようにします。

マクロを再分析

新しいマクロを追加すると、Burpは先行するレスポンスから値を決定できるパラメータを特定し、マクロ間の関連性を自動的に見つけようとします。この自動解析は、マクロを再分析ボタンで繰り返し実行できます。マクロのアイテムを手動で変更した場合に便利です。

マクロをテスト

マクロをテスト機能により、マクロ設定が意図した通りに動作するか確認できます。Burpはマクロリクエストを順番に発行し、すべてのパラメータ値を抽出しようとします。

マクロが実行されると、Burpは次を表示します: