web-dev-qa-db-ja.com

「トレーリングホストヘッダー」とは何ですか。どのようにテストすればよいですか。

私のチームは、今年、Black Hatでリリースされた WAFテストツール に基づいてWAF保護に関する調査を行っています。ツールには、 ホスト名回避テスト のリストがあります-これは、実際に手動でテストするためのアイデアの概要にすぎません。

私たちが困惑しているのは1つだけです-ホスト名回避手法としての「Trailing Hostヘッダー」とは何ですか?

誰かがこれについて実行可能なテストを提案できますか?

16
bethlakshmi

ホストヘッダーは、クライアントが使用するサーバー名を示すために使用されます。複数のWebサイトが単一のIPアドレスから提供される場合があります。

HTTPプロトコルでは、データは複数のチャンクで送信される場合があります。これは、リクエストを完了する前にサーバーがデータのサイズを知らない場合に特に役立ちます(例:ライブストリームや、残りの作業を続けている間に結果の送信を開始するWebアプリケーション)。

詳細は .6.1 Chunked Transfer Coding を参照してください:

チャンクサイズフィールドは、チャンクのサイズを示す16進数の文字列です。チャンクエンコーディングは、サイズがゼロのチャンクで終了し、その後にトレーラーが続き、空の行で終了します。

トレーラーにより、送信者はメッセージの最後に追加のHTTPヘッダーフィールドを含めることができます。

クライアントが不明なサイズの何かをアップロードしている場合でも、その時点でターゲットの場所を知っているため、接続を開きました。したがって、Hostヘッダーをデータの後ろの後続セクションに配置しても意味がありません。

アクセスルールを処理するリバースプロキシ(別名Webアプリケーションファイアウォール)によって要求が処理された場合、状況は悪用される可能性があります。リバースプロキシはホストヘッダーの1つを表示し、Webアプリケーションは他のヘッダーを表示する場合があります。

12