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

オプション: セッションハンドリングルールエディタ

セッションハンドリングエディタでは、セッションハンドリングルール全ての詳細を設定できます。

ルール詳細

これは、ルールの詳細を記載するフリーフォームのテキストフィールドです。説明は、設定されたルールの順序通り一覧に表示されます。

ルールアクション

各ルールは、実行される1つまたは複数のアクションが指定できます。ルールが適用されると、次のアクションを適用しないよう設定されたアクションがない限り、これらのアクションが順番に実行されます。

これらのアクションは全て詳細に設定可能で、任意の方法で組み合わせると、ほぼ全てのセッションハンドリングメカニズムを処理できます。例えば、任意のマクロ(一連の定義済みリクエスト)を実行し、その結果に基づいて指定されたcookieとパラメータ値を更新できるため、自動スキャンやIntruderの攻撃でアプリケーションに自動的に再ログインができます。ブラウザー内のセッション復元のプロンプトで、物理トークンからの番号キー入力やCAPTCHA形式のパズル回答などのログインメカニズムでも動作します。

このアクションは、Burpのcookie jarの関連するcookieで、リクエストを更新します。全てのcookie(または一部除外)、または特定のcookieだけを更新するようアクションの設定ができます。

このアクションは、名前付きのパラメータやcookieに、指定した値をセットしてリクエストを更新します。存在していない場合、追加するパラメータのタイプを指定できます。

セッションの有効性をチェックする

このアクションは、現在のセッションが有効かどうかをチェックし、有効でない場合は有効な新しいセッションを取得するアクションを実行します。

セッションを検証するリクエスト発行

Burpは、1つ以上のリクエストを発行して、現在のセッションの有効性を判断します。次のいずれかです:

現在のリクエストが発行され、セッションが有効だとルールが判断した場合、このリクエストでさらにアクションは実行されません。

Xリクエストごとに、Burpがセッションを検証する設定もできます。アプリケーションがほとんどセッションを無効にしない場合、余計なリクエストを発生させないために便利です。

セッションの有効性判断にレスポンスを検証

設定されたリクエストを作成後、Burpはレスポンスを調べてセッションの有効性を判断します。マクロが実行された場合、Burpはマクロ内最後のリクエストのレスポンスを調べます。

セッションが有効性か判断するために、指定した文字列がレスポンスに含まれているかどうかをチェックします。Burpが検索する対象は次の通りです:

検索にリテラル文字列または正規表現を使用するかどうか、また大文字小文字を区別するかどうかを設定できます。

セッション有効性に応じた動作の定義

セッションの有効性に応じて、Burpの動作を設定できます。

セッションが有効な場合、Burpが現在のリクエストにさらにルールやアクションを処理しないよう指定できます。Burpが現在のリクエストを発行してセッションを検証するように設定されている場合、このオプションは必須です。

セッションが無効な場合、新しい有効なセッションを取得するために、Burpが次のいずれかのアクションを実行するように指定できます:

ブラウザ内セッション復元のプロンプトを出す

ブラウザを使用して有効なセッションを復元するようBurpにプロンプトを出させます。同じBurpのインスタンスをプロキシとして使用するようブラウザを設定している必要があり、これによりBurpがブラウザのリクエストや新しいcookieが発行されたことを監視できるようになります。

アプリケーションによってセットされたcookieはBurpのセッションハンドリングcookie jarに追加され、設定により現在のリクエストを更新できます。全てのcookie(または一部除外)、または特定のcookieだけを更新するようアクションの設定ができます。

マクロを実行する

このアクションは、マクロ(一連の定義済みリクエスト)を実行します。マクロは、Burpのセッション設定内で別々に定義され、セッションハンドリングルールで利用できます。

マクロの実行後、マクロの最終レスポンスに基づき、現在処理されているリクエストのパラメータやcookieを更新できます。

マクロの最終レスポンスで得られる値を使用して、現在のリクエストのパラメータを更新できます。パラメータ値の変更は一般的にマクロパラメータと同じように動作します。変更パラメータで、次のオプションを使用できます:

マクロから変更したパラメータとcookie両方に対して、現在のリクエストの全てのアイテム(または一部除外)、または特定のアイテムのみ更新するようアクションの設定ができます。

リクエスト後マクロを実行する

このアクションは、現在処理中のリクエストが発行され、さらにマクロ(一連のリクエスト)が実行されます。マクロは、Burpのセッション設定内で別々に定義され、セッションハンドリングルールで利用できます。このアクションが実行された後、現在処理されているリクエストに対して、それ以上のルールやアクションは実行されません。

テストするリクエストが多段階プロセスの処理内に存在し、残りの手順を実行してアプリケーションの状態を更新し対象リクエストの影響を判断する必要がある場合に、リクエスト後マクロが便利です。

現在のリクエストを発行後、最初のマクロリクエストのパラメータを、現在のリクエストのレスポンスに基づいて更新ができます。パラメータ値の変更は一般的にマクロパラメータと同じように動作します。最初のマクロリクエストの全てのパラメータ(または一部除外)、または特定のパラメータのみ更新するようアクションの設定ができます。

起動しているツールに、マクロを実行する前にに発行されている現在のリクエストのレスポンスを渡すか、マクロの最終レスポンスを渡すか、アクションの設定ができます。後者は、多段階プロセスのある手順をスキャンやファジングした結果、その処理のエラーメッセージが後の手順で表示される場合に便利です。

Burp拡張を呼び出す

Burp拡張を呼び出し現在のリクエストを処理します。拡張はセッションハンドリングアクションハンドラーを登録している必要があります。現在読み込まれている拡張のうち使用可能なハンドラーのリストから、必要なハンドラーを選択できます。

ツールスコープ

各ルールをどのBurpツールに適用するか指定できます。このツールスコープに含まれるツールによって発行されたリクエストでのみ、ルールは処理されます。

URLスコープ

各ルールを適用するURLを指定できます。全てのURLを含める(Burpのcookie jarを利用する一般的なルールで便利)か、Suite全体のターゲットスコープを利用する(現在のセッションを検証するなどアプリケーション範囲のルールで便利)か、カスタムスコープを指定(単一のリクエストにのみ影響を与えるルールで便利)かを設定できます。

詳細は、URLスコープの設定を参照してください。

パラメータスコープ

特定の名前のパラメータを含むリクエストだけにルールを適用するよう指定もできます。例えばCSRFトークンのような、更新が必要なパラメータを含むすべてのリクエストに影響を与える、アプリケーション全体のルールで便利です。