IntruderでPayload挿入前に処理を追加する方法
BurpSuiteのIntruderでPayloadを挿入する際、そのデータをエンコードやハッシュ化した後に送信したい場合があるかと思います。
「Payload Proceing」という項目から設定できるため、設定手順を実際の例を使って紹介します。
利用したBurpSuiteのバージョン:v2022.12.5
設定の例で
BurpSuiteの開発元PortSwigger社の以下のLABを使った例で紹介します。
自身のログイン情報「wiener:peter」がある状態で、ユーザ「carlos」のマイページへアクセスするのが目標です。
システムの挙動確認
まずは、システムの挙動を確認します。
ログイン画面で自身のログイン情報「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」タブへ移動します。
本題のPayload挿入前にデータ処理する方法です。
「Payload Processing」より、上から順に以下の操作を設定します。
- パスワードをMD5でハッシュ化する。
- 値の前に「carlos:」を追加する。
- 値をBase64でエンコードする。
「Start Attack」で通信を開始します。
パスワードの1つが合致し、ステータス200のレスポンスが発生しました!