hop-by-hop headers

htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ

この記事はhttps://nathandavison.com/blog/abusing-http-hop-by-hop-request-headersの要約です

ホップバイホップヘッダーは、単一のトランスポートレベル接続に固有であり、主にHTTP/1.1で使用され、2つのノード間のデータを管理するために使用されます(クライアント-プロキシまたはプロキシ-プロキシなど)、転送されることを意図していません。標準のホップバイホップヘッダーには、Keep-AliveTransfer-EncodingTEConnectionTrailerUpgradeProxy-AuthorizationProxy-Authenticateが含まれます。これらはRFC 2616で定義されています。追加のヘッダーは、Connectionヘッダーを介してホップバイホップとして指定できます。

ホップバイホップヘッダーの悪用

プロキシによるホップバイホップヘッダーの適切な管理がされていないと、セキュリティの問題が発生する可能性があります。これらのヘッダーを削除することが期待されているプロキシでも、すべてが削除されるわけではなく、潜在的な脆弱性が生じる可能性があります。

ホップバイホップヘッダーの処理のテスト

ホップバイホップヘッダーの処理は、特定のヘッダーがホップバイホップとしてマークされたときにサーバー応答に変化が見られることでテストできます。ツールやスクリプトを使用してこのプロセスを自動化し、プロキシがこれらのヘッダーをどのように処理するかを特定し、ミス構成やプロキシの動作を明らかにすることができます。

ホップバイホップヘッダーの悪用はさまざまなセキュリティ上の影響をもたらす可能性があります。以下に、これらのヘッダーを悪用して潜在的な攻撃を行う方法を示す例がいくつかあります:

X-Forwarded-Forを使用したセキュリティコントロールのバイパス

攻撃者は、X-Forwarded-Forヘッダーを操作してIPベースのアクセス制御をバイパスすることができます。このヘッダーは、プロキシがクライアントの元のIPアドレスを追跡するためによく使用されます。ただし、プロキシがこのヘッダーをホップバイホップとして扱い、適切な検証なしに転送する場合、攻撃者は自分のIPアドレスを偽装することができます。

攻撃シナリオ:

  1. 攻撃者は、X-Forwarded-Forヘッダーに偽のIPアドレスを含めて、プロキシの背後にあるWebアプリケーションにHTTPリクエストを送信します。

  2. 攻撃者は、Connection: close, X-Forwarded-Forヘッダーも含め、プロキシにX-Forwarded-Forをホップバイホップとして扱うよう促します。

  3. 設定が誤っているプロキシは、スプーフィングされたX-Forwarded-Forヘッダーを削除せずにWebアプリケーションにリクエストを転送します。

  4. 元のX-Forwarded-Forヘッダーが見えないWebアプリケーションは、リクエストを信頼されたプロキシから直接受信していると見なし、不正なアクセスを許可する可能性があります。

ホップバイホップヘッダーインジェクションによるキャッシュの汚染

キャッシュサーバーがホップバイホップヘッダーに基づいてコンテンツを誤ってキャッシュする場合、攻撃者は悪意のあるヘッダーをインジェクトしてキャッシュを汚染することができます。これにより、同じリソースを要求するユーザーに誤ったまたは悪意のあるコンテンツが提供されます。

攻撃シナリオ:

  1. 攻撃者は、キャッシュされてはならないホップバイホップヘッダーを持つリクエストをWebアプリケーションに送信します(例:Connection: close, Cookie)。

  2. 設定が不十分なキャッシュサーバーは、ホップバイホップヘッダーを削除せずに、攻撃者のセッションに特化したレスポンスをキャッシュします。

  3. 同じリソースを要求する将来のユーザーは、攻撃者向けに調整されたキャッシュされたレスポンスを受け取り、セッションハイジャックや機密情報の公開につながる可能性があります。

htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ

Last updated