Cache Poisoning to DoS
このページでは、キャッシュサーバーに有効なリクエストに対して、ウェブサーバーがエラーで応答するようにするさまざまなバリエーションを見つけることができます。
HTTPヘッダーサイズオーバーサイズ(HHO)
ウェブサーバーがサポートするヘッダーサイズよりも大きいが、キャッシュサーバーがサポートするヘッダーサイズよりも小さいヘッダーサイズでリクエストを送信します。ウェブサーバーは400応答を返し、これがキャッシュされる可能性があります。
HTTP Meta Character (HMC) & Unexpected values
攻撃が機能するためには、最初にキャッシュをバイパスする必要があります。やなどの有害なメタ文字を含むヘッダを送信します。
悪く構成されたヘッダーは、単に\:
としてヘッダーとして機能する可能性があります。
これは、予期しない値が送信された場合にも機能する可能性があります。例えば、予期しないContent-Type:
Unkeyed header
いくつかのウェブサイトは、リクエスト内に X-Amz-Website-Location-Redirect: someThing ヘッダーのような特定のヘッダーがあると、エラーのステータスコードを返します。
HTTP Method Override Attack (HMO)
サーバーがX-HTTP-Method-Override
、X-HTTP-Method
、またはX-Method-Override
などのヘッダーを使用してHTTPメソッドを変更することをサポートしている場合、メソッドを変更して有効なページをリクエストすることが可能です。サーバーがそのメソッドをサポートしていないため、悪い応答がキャッシュされる可能性があります。
キーのないポート
Hostヘッダーのポートがレスポンスに反映され、キャッシュキーに含まれていない場合、未使用のポートにリダイレクトすることが可能です:
長いリダイレクト DoS
次の例のように、x がキャッシュされていない場合、攻撃者はリダイレクト応答の動作を悪用して、リダイレクトが大きすぎる URL を送信してエラーを返すようにすることができます。その後、キャッシュされていない x キーなしで URL にアクセスしようとする人々はエラー応答を受け取ります。
ホストヘッダーケースの正規化
ホストヘッダーは大文字小文字を区別しないはずですが、一部のウェブサイトでは小文字であることを期待しており、そうでない場合にエラーが返されることがあります。
パスの正規化
一部のページは、パス内のデータをURLencodeしてエラーコードを返すことがありますが、キャッシュサーバーはパスをURLdecodeして、URLdecodeされたパスのレスポンスを保存します。
Fat Get
一部のキャッシュサーバー、例えばCloudflare、またはWebサーバーは、ボディを持つGETリクエストを停止するため、これは無効なレスポンスをキャッシュするために悪用される可能性があります。
参考文献
Last updated