hacktricks/pentesting-web/abusing-hop-by-hop-headers.md
2023-07-07 23:42:27 +00:00

10 KiB
Raw Blame History

ホップバイホップヘッダー

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

RootedCONは、スペインで最も関連性の高いサイバーセキュリティイベントであり、ヨーロッパでも最も重要なイベントの一つです。この大会は、技術的な知識を促進することを目的としており、あらゆる分野の技術とサイバーセキュリティの専門家にとっての活発な交流の場です。

{% embed url="https://www.rootedcon.com/" %}

ホップバイホップヘッダーとは何ですか?

ホップバイホップヘッダーは、リクエストを処理しているプロキシによって処理され、消費されるヘッダーであり、エンドツーエンドのヘッダーとは異なります。

HTTP/1.1仕様によると、以下のヘッダーはデフォルトでホップバイホップとして扱われます:Keep-AliveTransfer-EncodingTEConnectionTrailerUpgradeProxy-AuthorizationProxy-Authenticate。これらのヘッダーがリクエストで見つかった場合、準拠したプロキシはこれらのヘッダーが示す処理またはアクションを実行し、次のホップに転送しません。

これらのデフォルトに加えて、リクエストはホップバイホップとして扱われるカスタムなヘッダーのセットを定義することもできます。これは、これらのヘッダーをConnectionヘッダーに追加することで行います:

Connection: close, X-Foo, X-Bar

hop-by-hopヘッダーの乱用に関する理論

理論上、プロキシは次のアドレスに送信する前に受信したhop-by-hopヘッダーを削除するはずです。しかし、実際には、一部のプロキシはこれを行い、他のプロキシは自身のConnectionヘッダーを追加してすべてのヘッダーを送信します。

hop-by-hop削除のテスト

もし、ヘッダーが設定されている場合と設定されていない場合でサーバーの応答が大きく異なる場合、hop-by-hop削除を探すことができます。例えば、Cookieヘッダーは、有効な内容で設定されている場合と設定されていない場合でサーバーの応答が大きく異なります。

したがって、有効なヘッダーと次のようなConnectionヘッダーの値Connection: close, Cookieを持つリクエストを送信し、クッキーが送信されていない場合と同じ応答が得られるかどうかを確認します。もし同じ応答が得られる場合、ヘッダーを削除するプロキシが存在します。

このスクリプトを使用して、ヘッダーが削除された場合にサーバーの応答がどのように異なるかを確認することができます。また、このリストのような既知のヘッダーのリストを渡すことで、元のリクエストに含まれていないにもかかわらず効果を引き起こしているヘッダーを観察することができます。

for HEADER in $(cat headers.txt); do python poison-test.py -u "https://target" -x "$HEADER"; sleep 1; done

X-Forwarded-For の悪用

一般的に、プロキシはクライアントのIPを X-Forwarded-For ヘッダに追加します。次のホップはリクエストの送信元を知るためです。しかし、攻撃者が Connection: close, X-Forwarded-For のような Connection 値を送信し、最初のプロキシがホップごとのヘッダを値とともに送信する場合(特別な Connection 値を送信する場合、2番目の値は X-Forward-For ヘッダを削除する可能性があります。最終的なアプリケーションはリクエストを送信したのが最後のプロキシであると思い込み、IPホワイトリストによって保護されたリソースにアクセスできるようになる可能性がありますたとえば、/admin など)。

対象となるシステムによっては、ForwardedX-Real-IP、および他の一部のヘッダが存在する場合もあります。

プロキシの検出とサービスのフィンガープリント

この技術は、クッキーの技術を使用してプロキシを検出するのに役立つ場合があります。また、サービスを検出するためにも使用できます。たとえば、この技術を使用して X-BLUECOAT-VIA ヘッダを削除し、エラーが発生した場合、Bluecoat が使用されていることがわかります。

その他の攻撃

  • この技術を悪用した DoS キャッシュポイズニングについては、元のリンクを参照してください。
  • これは新しいヘッダを挿入する可能性のある攻撃に役立つ場合があります(確率は低いです)。
  • また、これは防御機能をバイパスするのに役立つ場合があります。たとえば、ヘッダの欠如がリクエストを WAF で処理しないことを意味する場合、この技術を使用して WAF をバイパスできます。

参考文献

{% embed url="https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers" %}

RootedCONスペインで最も関連性の高いサイバーセキュリティイベントであり、ヨーロッパでも最も重要なイベントの一つです。技術的な知識を促進することを使命としており、この会議はあらゆる分野の技術とサイバーセキュリティの専門家の活発な交流の場です。

{% embed url="https://www.rootedcon.com/" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥