HTTP/2特有の実行

Burp Proxyでリクエストをインターセプトする場合やBurp Repeaterにリクエストを送信する場合に、InspectorはHTTP/2ヘッダや疑似ヘッダを、実際のリクエストに近い形で扱えます。

各ヘッダと疑似ヘッダは、リクエストヘッダにそれぞれの項目があり、名前のフィールドに分かれています。実際のバイナリは表示していませんが、これはサーバに送信される内容を正確に表しています。次のビデオデモンストレーションで、その様子が確認できます:

この表現方法はHTTP/1から完全に切り離されているため、悪意のあるリクエストを構築する際に、HTTP/1構文の制限に縛られることはありません。これにより、一部の高度な、HTTP/2特有の攻撃が行えます。

たとえば、次のことが可能です:

これらの変更のほとんどは、メインのInspectorビューでヘッダの名前や値をダブルクリックするだけで行えます。

仕様書によると、このような種類のインジェクションは、サーバによってリクエストが拒否されるはずですが、一部のサーバはこのようなインジェクションを許容しています。現在のところ、この動作を利用できるツールはBurpだけです。

これらの変更を適用するとメッセージエディタでは、HTTP/1の構文では情報を失わずにリクエストを正確に表現できなくなります。この場合、ケトルなリクエストとみなされます。

ヘッダへの改行の挿入

HTTP/2のヘッダや値に改行を入れるには、Inspectorのエントリの右側にあるマークをクリックして、ヘッダを掘り下げます。この画面で、名前またはのフィールドを選択し、Shift+Returnキーを押すと\r\nというシーケンスを入力できます。