web-dev-qa-db-ja.com

Burpマクロを使用してパラメーターを侵入者に渡す方法

私の問題は、カスタムWebアプリケーションの2ステージログインをファズしようとしていることです。

私がする必要があるのは、アンチcsrfトークンとセッションIDを提供する最初のページのGETです。

そこから私はPOST応答のユーザー名が別のトークンを私に提供します

この2番目のトークンは、最後のPOSTで使用され、anti-csrfトークンおよびセッションIDとともにパスワードをサーバーに送信します。ユーザー名は2番目のPOSTログイン試行ごとに追跡される2番目のトークンを使用するため、ログイン試行ごとに新しいトークンが必要です。

理想的には、侵入者を使用してチェーン内の両方のPOSTをファジングしたいが、GETからのパラメーターと最初のPOSTが侵入者に渡され、その時点でパスワードが渡されるようにするマクロチェーンに落ち着くフィールドはファジングされ、サーバーに送信されます。

私はげっぷマクロについていくつかの研究をしました、そしてそれはそれが可能であるはずであるように見えます、しかしそれらの通常の使用のための正統ではありません。私が抱えている問題は、パラメータの抽出と侵入者への引き渡しです。

どんな助けでも大歓迎です、ありがとう。

4
Desblock

これは通常、マクロとセッション処理ルールによって実行できます。私が理解しているように、あなたには3つの要求があります:

  1. CSRFトークンを取得する
  2. 投稿ユーザー名
  3. パスワードを投稿する

最初のステップは、Burpをプロキシーとして構成して、ブラウザーでこれらを再現することです。

次に、要求1と2を使用してマクロを作成します。マクロエディターで、要求2を選択し、[アイテムの構成]をクリックします。 CSRFトークンが非表示フィールドである場合、これは自動的に検出されているはずであり、パラメーター処理で「csrf_token-以前の応答から派生」のようなものが表示されます。そうでない場合-これを手動で構成する必要がある場合があります。リクエスト1でアイテムの設定を行い、カスタムパラメータの場所を定義する必要がある場合があります。次に、テストマクロを使用して、これが機能していることを確認できます。

次に、セッション処理ルールを作成します。リクエスト3のURLとパスをカバーするようにスコープを設定します。「マクロの実行」というアクションを追加し、マクロを選択して、このオプションを有効にしたままにします。

次に、リクエスト3をリピーターに送信します。 [Go]をクリックすると、マクロが実行され、リクエストが新しいトークン値で更新されるのがわかります。そうでない場合-セッショントレーサーを使用して、問題の原因を解明します。

Repeaterで動作したら、Intruder、Scannerなどの他のツールを使用できます。

両方のリクエストをチェーンでファジングするという考えは興味深いものです。簡単な方法は考えられませんが、これは興味深い拡張機能です。

2
PortSwigger