IntruderでPayload挿入前に処理を追加する方法

BurpSuiteのIntruderでPayloadを挿入する際、そのデータをエンコードやハッシュ化した後に送信したい場合があるかと思います。
「Payload Proceing」という項目から設定できるため、設定手順を実際の例を使って紹介します。
利用したBurpSuiteのバージョン:v2022.12.5
 
 

設定の例で

BurpSuiteの開発元PortSwigger社の以下のLABを使った例で紹介します。
 
自身のログイン情報「wiener:peter」がある状態で、ユーザ「carlos」のマイページへアクセスするのが目標です。
 

システムの挙動確認

まずは、システムの挙動を確認します。
Intruderの設定のみを確認したい場合はこの章はスキップし、「Intruderでブルートフォースの実施」をご確認ください。
 
ログイン画面で自身のログイン情報「wiener:peter」を入力し、「Stay logged in」にチェックを入れてログインします。
 
ログイン処理の通信「POST /login」のレスポンスは以下の通りで、通常のセッション管理用Cookie「session」に加え、Cookie「stay-logged-in」が発行されます。
 
Cookie「session」を削除してアクセスし、Cookie「stay-logged-in」だけでもMy Acountページへアクセスできることも確認します。
 
Cookie「stay-logged-in」の値を調査してみましょう。
値「d2llbmVyOjUxZGMzMGRkYzQ3M2Q0M2E2MDExZTllYmJhNmNhNzcw」をDecoderを使ってBase64でデコードすると「wiener:51dc30ddc473d43a6011e9ebba6ca770」となり、「<ユーザ名>:<パスワードのMD5ハッシュ>」となることを確認します。
 

Intruderでブルートフォースの実施

Cookie「stay-logged-in」に対してブルートフォース攻撃をします。
 
Intruderの「Positions」タブで、ブルートフォース攻撃の対象の値をマーキングします。
対象の値をドラッグして「Add §」より設定可能です。
 
「Payloads」タブへ移動します。
候補のパスワード一覧を今回はこちらからコピーして「Paste」で貼り付けて設定します。
 
本題のPayload挿入前にデータ処理する方法です。
「Payload Processing」より、上から順に以下の操作を設定します。
  1. パスワードをMD5でハッシュ化する。
  1. 値の前に「carlos:」を追加する。
  1. 値をBase64でエンコードする。
 
「Start Attack」で通信を開始します。
パスワードの1つが合致し、ステータス200のレスポンスが発生しました!