mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
43 lines
4.4 KiB
Markdown
43 lines
4.4 KiB
Markdown
# hop-by-hop headers
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
---
|
||
|
||
**この記事の要約** [**https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers**](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)
|
||
|
||
Hop-by-hopヘッダーは、特定のトランスポートレベルの接続に特有で、主にHTTP/1.1で2つのノード(クライアント-プロキシやプロキシ-プロキシ)間のデータを管理するために使用され、転送されることを意図していません。標準のhop-by-hopヘッダーには、`Keep-Alive`、`Transfer-Encoding`、`TE`、`Connection`、`Trailer`、`Upgrade`、`Proxy-Authorization`、および`Proxy-Authenticate`が含まれ、[RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1)で定義されています。追加のヘッダーは、`Connection`ヘッダーを介してhop-by-hopとして指定できます。
|
||
|
||
### Hop-by-Hopヘッダーの悪用
|
||
|
||
プロキシによるhop-by-hopヘッダーの不適切な管理は、セキュリティ上の問題を引き起こす可能性があります。プロキシはこれらのヘッダーを削除することが期待されていますが、すべてのプロキシがそうするわけではなく、潜在的な脆弱性を生じさせます。
|
||
|
||
### Hop-by-Hopヘッダー処理のテスト
|
||
|
||
特定のヘッダーがhop-by-hopとしてマークされたときのサーバーの応答の変化を観察することで、hop-by-hopヘッダーの処理をテストできます。ツールやスクリプトを使用してこのプロセスを自動化し、プロキシがこれらのヘッダーをどのように管理しているかを特定し、誤設定やプロキシの動作を明らかにすることができます。
|
||
|
||
Hop-by-hopヘッダーの悪用は、さまざまなセキュリティ上の影響を引き起こす可能性があります。以下は、これらのヘッダーが潜在的な攻撃のためにどのように操作されるかを示すいくつかの例です。
|
||
|
||
### `X-Forwarded-For`によるセキュリティ制御の回避
|
||
|
||
攻撃者は、`X-Forwarded-For`ヘッダーを操作してIPベースのアクセス制御を回避できます。このヘッダーは、プロキシがクライアントの発信IPアドレスを追跡するために使用されることがよくあります。しかし、プロキシがこのヘッダーをhop-by-hopとして扱い、適切な検証なしに転送すると、攻撃者は自分のIPアドレスを偽装できます。
|
||
|
||
**攻撃シナリオ:**
|
||
|
||
1. 攻撃者は、プロキシの背後にあるWebアプリケーションにHTTPリクエストを送信し、`X-Forwarded-For`ヘッダーに偽のIPアドレスを含めます。
|
||
2. 攻撃者は、`Connection: close, X-Forwarded-For`ヘッダーも含め、プロキシに`X-Forwarded-For`をhop-by-hopとして扱うよう促します。
|
||
3. 誤設定されたプロキシは、偽装された`X-Forwarded-For`ヘッダーなしでリクエストをWebアプリケーションに転送します。
|
||
4. Webアプリケーションは、元の`X-Forwarded-For`ヘッダーを見ていないため、リクエストが信頼されたプロキシから直接来たものと見なす可能性があり、無許可のアクセスを許可する可能性があります。
|
||
|
||
### Hop-by-Hopヘッダー注入によるキャッシュポイズニング
|
||
|
||
キャッシュサーバーがhop-by-hopヘッダーに基づいてコンテンツを不適切にキャッシュすると、攻撃者は悪意のあるヘッダーを注入してキャッシュを汚染する可能性があります。これにより、同じリソースを要求するユーザーに不正確または悪意のあるコンテンツが提供されます。
|
||
|
||
**攻撃シナリオ:**
|
||
|
||
1. 攻撃者は、キャッシュされるべきでないhop-by-hopヘッダー(例:`Connection: close, Cookie`)を含むリクエストをWebアプリケーションに送信します。
|
||
2. 不適切に設定されたキャッシュサーバーは、hop-by-hopヘッダーを削除せず、攻撃者のセッションに特化した応答をキャッシュします。
|
||
3. 同じリソースを要求する将来のユーザーは、攻撃者向けに調整されたキャッシュされた応答を受け取り、セッションハイジャックや機密情報の露出につながる可能性があります。
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|