0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【BurpSuite】パラメータの引き継ぎ方法

0
Last updated at Posted at 2026-02-11

概要

BurpSuiteでWebアプリケーションの脆弱性診断を行う際に、HTMLフォーム送信におけるパラメータを引き継ぎたい場面があります。
BurpSuiteにもともと備わっているMacroとSession handling rulesを使用することで、引き継ぎ可能です。
本記事ではその機能の使い方を記載します。


※ もし引き継ぎたいパラメータがJSONの場合は、以下を参照してください。

目的

  • BurpSuiteのRepeaterでリクエストBを送信した際に、リクエストAで得たパラメータを、リクエストBに引き継ぐ
  • さらに、リクエストCを送信した際に、リクエストBで得たパラメータを、リクエストCに引き継ぐ

前提

デモとして下記仕様とします。

  • リクエストBで正常なレスポンスを得たい場合、リクエストAで返却された文字列が必要である
  • リクエストCで正常なレスポンスを得たい場合、リクエストBで返却された文字列が必要である
  • リクエストAを送信すると、H1タグに文字列が返却され、これはリクエストBで必要になる
  • リクエストBをPOSTで、uuid={リクエストAで得た文字列}として送信すると、
    • 成功の場合、H1タグに文字列が返却され、これはリクエストCで必要になる
    • 不成功の場合、H1タグに文字列が返却さず、エラー画面になる
  • リクエストCをPOSTで、token={リクエストBで得た文字列}として送信すると、
    • 成功の場合、H1タグに「成功」と記載された画面が返却される
    • 不成功の場合、エラー画面になる
      image.png
      【正常】引き継ぎがすべて成功した場合

手順

まずは、リクエストA→リクエストBの引き継ぎ設定を行います。

Macroの設定(リクエストA→リクエストB)

ここで、リクエストAで返却される文字列の抜き出し設定をします。

SettingでMacroと検索し、Addを押下します。
Macro recorder でリクエストAを選択します。
image.png
Macro recorder でリクエストAを選択

右側にあるConfigure itemを押下し、Addを押下します。
ここで、リクエストAで返却される文字列の抜き出し設定を行います。

Parameter name を今回だとuuidに設定します。
Define start and endで、抜き出したい文字列の始まりから終わりの目印を設定します。
今回だと、<h1>からはじまり、</h1>で終わるので、そのように記載します。
下図のように、抜き出したい文字列がハイライトされていればOKです。
image.png
抜き出したい文字列がハイライトされている

これでMacroの設定は完了です。
次に、Session handling rulesの設定をします。

Session handling rulesの設定(リクエストA→リクエストB)

Session handling rulesで検索し、Addを押下します。
DetailsタブのRule descriptionには任意の名前をつけます。ここでは、「requestA」と設定します。
Rule actionでは、AddからRun a Macroを選択し、先ほど作成したMacroを選択します。
Session handling action editorでは、Update only the following parameters and heders:で、引き継ぎ先のパラメータのキー値を設定します。ここでは、「uuid」と設定します。
image.png
引き継ぎ先のパラメータのキーを設定する
image.png
Detailsタブ

Scopeタブでは、Tool Scopeで使用したいツールを選択します。今回はRepeaterで引き継ぎ処理ができればいいので、Repeaterにチェックを入れます。
URL Scopeでは、この設定をいつ動かすかを設定します。今回は、リクエストBを送信した際に動いて欲しいので、Use custom scopeにリクエストBを設定します。
image.png
Scopeタブ

動作確認(リクエストA→リクエストB)

RepeaterでリクエストBを送信して、リクエストボディの値が変化して、引き継ぎ設定がうまくいっているか確認します。
image.png
Repeaterで動作確認

次に、リクエストB→リクエストCの引き継ぎ設定を行います。

Macroの設定(リクエストB→リクエストC)

ここで、リクエストBで返却される文字列の抜き出し設定をします。

SettingでMacroと検索し、Addを押下します。
Macro recorder でリクエストA、リクエストBを選択します。
image.png
Macro recorder でリクエストA、リクエストBを選択

リクエストAを選択した状態で、右側にあるConfigure itemを押下し、Addを押下します。
ここで、リクエストAで返却される文字列の抜き出し設定を行います。
この設定はここでの設定と同様です。

次に、リクエストBを選択した状態で、右側にあるConfigure itemを押下し、Addを押下します。
リクエストBのリクエストボディuuidに、いま設定したリクエストAの値を設定します。
Derive from prior respons で Respons 1 をプルダウンで選択します。
image.png
リクエストAで抜き出した値をリクエストBのボディに当て込む設定

右下Addを押下し、リクエストBのレスポンスから文字列を抜き出す設定を行います。

Parameter name を今回だとtokenに設定します。
Define start and endで、抜き出したい文字列の始まりから終わりの目印を設定します。
今回だと、<h1>からはじまり、</h1>で終わるので、そのように記載します。
下図のように、抜き出したい文字列がハイライトされていればOKです。
image.png
抜き出したい文字列がハイライトされている

このMacroの設定がうまくいってるか、Test Macroを押下して確認します。
Macro testerで、リクエストBが成功していればOKです。
image.png
Test Macroで動作確認

これでMacroの設定は完了です。
次に、Session handling rulesの設定をします。

Session handling rulesの設定(リクエストB→リクエストC)

Session handling rulesで検索し、Addを押下します。
DetailsタブのRule descriptionには任意の名前をつけます。ここでは、「requestB」と設定します。
Rule actionでは、AddからRun a Macroを選択し、先ほど作成したMacroを選択します。
Session handling action editorでは、Update only the following parameters and heders:で、引き継ぎ先のパラメータのキー値を設定します。ここでは、「token」と設定します。
image.png
引き継ぎ先のパラメータのキーを設定する
image.png
Detailsタブ

Scopeタブでは、Tool Scopeで使用したいツールを選択します。今回はRepeaterで引き継ぎ処理ができればいいので、Repeaterにチェックを入れます。
URL Scopeでは、この設定をいつ動かすかを設定します。今回は、リクエストCを送信した際に動いて欲しいので、Use custom scopeにリクエストCを設定します。
image.png
Scopeタブ

動作確認(リクエストB→リクエストC)

RepeaterでリクエストCを送信して、リクエストボディの値が変化して、引き継ぎ設定がうまくいっているか確認します。
期待値通りの挙動であれば、設定完了です。
image.png
Repeaterで動作確認

参考文献

ローカルプロキシツールBurpの使い方 その4 ~マクロ機能_ 複数画面とトークンの引継ぎ~
| パーソルクロステクノロジー株式会社

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?