web-dev-qa-db-ja.com

POST Burp SuiteによるメソッドAnti-CSRFヘルプ

Webアプリケーションをテストしていますが、フォーム内でCSRFトークンに遭遇し、Burp Suite侵入者を使用したファジングの試みを妨げています。アンチCSRFトークンは、HTMLメタフィールド内にcsrf-tokenとして表示されます。フォームの送信時に、同じトークンがURIエンコードされ、POST内のauthenticity-tokenパラメータとして送信されますリクエストボディ。

トークンが無効な場合、アプリケーションはユーザーセッションを終了します。これは、Intruderを実行している場合に当てはまります。これは、トークンが(ユーザーセッションの存続期間ではなく)期待どおりに1回使用されるためです。

簡単なようですが、以下のガイドでは設定できませんでした。
https://support.portswigger.net/customer/portal/articles/2906338-using-burp-s-session-handling-rules-with-anti-csrf-tokens
https://plusplussecurity.com/2016/11/14/csrf-tokens-using-macros-in-burp-suite-iii/

リクエストと適切なトークンを選択することはあまり効果がないようですが、マクロをテストすると新しいcsrf-tokenを含む新しいレスポンスが生成されます。特に、authenticity-tokenは各リクエスト間で更新されず、セッション処理ルールが機能している証拠はありません。

この時点で何が欠けているのかわからないので、これについての良いガイドや支援をいただければ幸いです。

1
user1330734

https://www.youtube.com/watch?v=GWLMmkv3z38 のビデオのおかげで、私が最終的にたどったルートは次のとおりです。

  1. アンチCSRFトークンを特定します(例:フォーム内の隠しcsrf_tokenフィールド)
  2. [プロジェクトオプション]> [セッション]> [追加]に移動して、新しいマクロを記録します。
  3. マクロレコーダーで、プロキシ履歴からHTTPリクエストを選択し、[OK]をクリックします。
  4. マクロアイテムを選択し、構成アイテムをクリックします。
  5. 右下のAdd Custom Parameterで、抗CSRFトークンとして使用するために抽出される文字列を強調表示します。 「Define start and end」フィールドは、適切な検索語で更新する必要があります。 csrf-tokenのような説明をパラメーター名フィールドに入力します。
  6. セッション処理ルールを追加します。
  7. ドロップダウンリストからルールアクション(マクロを実行)を追加します。
  8. 最終マクロ応答から一致したパラメーターで現在の要求を更新を選択します。
    以下のパラメータのみを更新選択し、パラメータの名前を入力します。 authentication_token
  9. 最後に、セッション処理ルールエディター内の[スコープ]タブをクリックし、目的のBurpツール、パラメーター、およびスコープURLにスコープを構成します。

私はこの問題に思ったよりも多くの時間を費やしたので、これが誰かがいくつかの痛みを救うのに役立つことを願っています。明確でない場合はお知らせください。ギャップを埋めます。

2
user1330734

あなたは正しい方向に進んでいるように聞こえます。リンクしたチュートリアルほど詳細なチュートリアルはありません。

問題の診断に役立つように、Sessions Tracerを開きます。また、認証トークンを持つリピーターにリクエストを送信します。確認したいのは、RepeaterでGoを押すと、セッション処理ルールがアクティブになり、マクロを実行して新しいトークンを取得し、Repeaterで要求を更新することです。これのどの部分が機能していないかを正確に知ることは、それを修正するのに役立ちます。

トークンはメタタグ内にあるため、カスタムパラメータの場所を使用する必要があります。マクロエディターで、[アイテムの構成]をクリックし、カスタムパラメーターの場所を追加します。

または、これを自動的に処理するBurp 2を使用します。

0
PortSwigger