私は今WebGoatに飛び込んでいますが、「一般」タブの「httpプロキシ」で、zap/burpを使用してリクエストをインターセプトおよび変更するように要求するこの小さな演習があります。
何を求められているのかは理解できましたが、手動で変更しても機能しないのはなぜかわかりません。一方、げっぷボタンを使用すると、「変更要求メソッド」の場合と同じように、最後に同じテキストが表示されます。 、何か不足していますか?
唯一の違いは、そのGET
文字列を手動で記述し、次に?changeMe=Requests+are+tampered+easily
を追加することです。これが機能しない理由がわからず、私を混乱させています。
ああ、もう1つ、Cookie
の下にx-request-intercepted:true
と入力すると、機能しない場合があります。 (ブレークラインはありません)
「(手動で」ではなく)「burpを使用してHTTPを編集しています...」と言ったとき、「Change request method "などのBurpの組み込み機能を使用する」という意味だと思います。編集ボックスの要求テキストを変更するだけで、「手動で」ということになります。それが間違っている場合は、明確にしてください。
Burpは多くのことを静かにそして自動的に行います。その中で:
ただし、(デフォルトでは)実行しないことがいくつかあります。
\r\n
フォーム(ほとんどのサーバーは柔軟ですが、実際には仕様に含まれています)。OSに関係なく、ボックス内でEnter/Returnキーを押すためにそのフォームを使用すると思います。x-request-intercepted
ヘッダーにはスペースがありませんが、-thinkはありませんが、それが問題であるか、サーバーが通常そこにあるため、サーバーがそれを予期している可能性があることを意味します。手動で作成したリクエストと機械で生成されたリクエストを比較したい場合は、[Raw]タブを試すことができますが、実際には[Hex]タブの方が参考になります。改行スタイルやその他の非印刷、空白、または類似した文字のようなものを隠しません。また、Repeaterタブを使用して、Burpのリクエストに対して多数の小さな繰り返しを簡単に試すこともできます(アクションをクリックするか、リクエストテキスト領域を右クリックして[Send to Repeater]を選択することで最も簡単に行えます)。リピーターはタブ付きで、履歴を記憶し、同じリクエストの複数のバリアントを異なるタブに表示できます。
結局のところ、HTTPはすべて単なるバイトであり、それがBurpが送信するものです。バイトが人間のユーザーによって手動で入力されたのか、Burpの要求/応答変更機能によって追加/変更されたのかは関係ありません。 netcat(nc
、ncat
、またはnetcat
、インストールした内容に応じて)を使用して同じバイトを送信することもできます。 TCP(そして、HTTPSの場合はTLS。TLSハンドシェイクと暗号化を手動で実行したくない)。