1. サポートセンター
  2. ドキュメント
  3. デスクトップ版
  4. オプション
  5. セッション
  6. マクロエディタ

オプション: マクロエディタ

マクロエディタでは、マクロの詳細全てを設定できます。

マクロを記録

マクロはブラウザを使用して記録されます。ブラウザは、現在のBurpインスタンスをプロキシサーバとして使用するよう設定されている必要があります。

マクロを記録するとき、BurpがProxy履歴を表示するので、そこからマクロで使用するリクエストを選択できます。以前に作成したリクエストから選択するか、再度マクロを記録し、履歴から新たなアイテムを選択できます。ブラウザを使用して新しいマクロを記録するには、Proxyインターセプトをオフにする必要があります。

マクロに含めるアイテムを選択し、"OK"をクリックすると、マクロエディタにアイテムが表示されます。

マクロアイテムを設定

マクロエディタは、マクロ内のアイテムのリストを表示します。順番の変更、アイテムの削除、マクロの再記録によってこれらを変更できます。リストで選択すると個々のリクエストは変更でき、リクエストビューアで直接編集できます。

リクエストの基本シーケンスと同様に、シーケンス内のアイテムの処理方法やアイテム間の依存関係に関する重要な設定が、各マクロにあります。マクロアイテムの設定を編集するには、リスト内でアイテムを選択し、"アイテム設定"をクリックします。

以下が設定できます:

パラメータ処理

リクエスト内の各パラメータについて、固定の設定値を使用するか、マクロ内の先行するレスポンスから引き継いだ値を使用するかを設定できます。

マクロ内の先行するレスポンスからリクエストのパラメータ値を引き継ぐ機能は、複数ステージのプロセスや、アプリケーションがCSRFトークンを積極的に使用している状況で特に有用です。パラメータの引き継ぎは、パラメータ名とリクエストされるURLに基づいて行われます。先行するレスポンスからのパラメータ値引き継ぎを指定した場合、関連するURLに送信された名前付きパラメータの元となったレスポンス(例えば、送信先に指定されているURLや、フォームのフィールド名の指定など)を調べます。見つかった場合、Burpはレスポンスからパラメータ値を抽出し、処理中のリクエストのパラメータを更新します。

新しいマクロが定義されると、Burpは先行するレスポンス(フォームフィールドの値、リダイレクト先、リンクのクエリーストリングなど)から値を特定できるパラメータを特定することで、このような関連を自動的に見つけようとします。必要に応じて、自動分析を手動で上書きできます。

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

Burpによるマクロ内アイテムのパラメータマッチングは、フォームフィールドの値やリンクのクエリーストリングのような、レスポンス内の既知の"通常"パラメータに対して自動的に動作します。場合によっては、これよりも柔軟に、レスポンス内の任意の場所をパラメータとして指定する機能が必要な場合があります。例えば、アプリケーションがCSRFトークンをJavaScript文字列として定義し、スクリプトがこれを追加して動的にリクエストを生成する場合です。このパラメータを引き継ぐマクロを作成するには、レスポンスのスクリプト内にあるパラメータの場所と、後続のリクエストのパラメータ名をBurpに設定する必要があります。

"カスタムパラメータ定義"ダイアログを使用して、カスタムパラメータの名前と、設定されたレスポンスアイテムでそれを含む場所、及びレスポンスから抽出された値がURLエンコードされているかどうかを指定できます。これはレスポンス抽出ルールダイアログを使用して設定します。これが完了するとパラメータハンドリングで述べた通常の方法のように、後続のマクロリクエスト(またはセッションハンドリングルールで処理されるリクエスト)で、指定されたパラメータを使用できるようになります。

レスポンスから抽出された値がURLエンコードされているかどうかの設定が重要です。これにより、後続のリクエストで値が使用されたときにBurp正しくエンコードできるようになり、配置されたコンテキストでURLエンコードが必要かどうかに反映されます。

マクロを再解析

新しいマクロが定義されると、前のレスポンスから値を決定できるパラメータを特定し、マクロアイテム間の関係を自動的に見つけようとします。マクロ内のアイテムを手動で変更した場合は、"マクロを再解析"ボタンを使用して自動解析を再実行できます。

マクロをテスト

先行するレスポンスからリクエストパラメータ引き継ぎをするマクロを設定したら、"マクロをテスト"機能を使用して、設定が想定通り動作しているか確認できます。これにより、マクロリクエストが順番に発行され、設定に応じてパラメータ値を引き継ごうとします。Burpは、その値が成功したか失敗したか確認するため、すべてのリクエストとレスポンス、受信したcookieの値、およびパラメータの詳細を表示します。