Cache Poisoning to DoS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
このページでは、キャッシュサーバーに対して有効なリクエストに対してウェブサーバーがエラーで応答するように試みるさまざまなバリエーションを見つけることができます。
HTTP Header Oversize (HHO)
ウェブサーバーがサポートするサイズより大きく、キャッシュサーバーがサポートするサイズより小さいヘッダーサイズでリクエストを送信します。ウェブサーバーは400レスポンスで応答し、これはキャッシュされる可能性があります。
HTTPメタキャラクター (HMC) と予期しない値
有害なメタキャラクターを含むヘッダーを送信します。攻撃が機能するためには、まずキャッシュをバイパスする必要があります。
A badly configured header could be just \:
as a header.
This could also work if unexpected values are sent, like an unexpected Content-Type:
悪く構成されたヘッダーは、ヘッダーとして単に \:
である可能性があります。
予期しない値が送信される場合、例えば予期しない Content-Type: のような場合にも機能する可能性があります。
Unkeyed header
一部のウェブサイトは、X-Amz-Website-Location-Redirect: someThing ヘッダーのように、リクエスト内の特定のヘッダーを見るとエラーステータスコードを返します。
HTTPメソッドオーバーライド攻撃 (HMO)
サーバーが X-HTTP-Method-Override
、X-HTTP-Method
、または X-Method-Override
のようなヘッダーでHTTPメソッドを変更することをサポートしている場合、メソッドを変更して有効なページをリクエストすることが可能です。これにより、サーバーがそれをサポートしないため、不正なレスポンスがキャッシュされます:
アンキー ポート
Host ヘッダーのポートがレスポンスに反映され、キャッシュキーに含まれていない場合、未使用のポートにリダイレクトすることが可能です:
ロングリダイレクトDoS
次の例のように、xはキャッシュされていないため、攻撃者はリダイレクト応答の動作を悪用して、リダイレクトが非常に大きなURLを送信するようにし、エラーを返すことができます。その後、キャッシュされていないxキーなしでURLにアクセスしようとする人々は、エラー応答を受け取ります:
ホストヘッダーのケース正規化
ホストヘッダーは大文字と小文字を区別しないはずですが、一部のウェブサイトは小文字であることを期待しており、そうでない場合はエラーを返します:
パスの正規化
一部のページは、パスにデータをURLエンコードして送信するとエラーコードを返しますが、キャッシュサーバーはパスをURLデコードし、URLデコードされたパスのレスポンスを保存します。
Fat Get
一部のキャッシュサーバー(Cloudflareなど)やウェブサーバーは、ボディを持つGETリクエストを停止するため、無効なレスポンスをキャッシュするために悪用される可能性があります:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)