Special HTTP headers
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
IPソースを書き換える:
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
X-Original-URL: 127.0.0.1
Client-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
Via: 1.0 fred, 1.1 127.0.0.1
Connection: close, X-Forwarded-For
(ホップごとのヘッダーを確認)
場所を書き換える:
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
ホップごとのヘッダーは、リクエストを処理しているプロキシによって処理され、消費されることを目的としたヘッダーであり、エンドツーエンドのヘッダーとは対照的です。
Connection: close, X-Forwarded-For
Content-Length: 30
Transfer-Encoding: chunked
サーバーキャッシュヘッダー:
**X-Cache
は、リクエストがキャッシュされていない場合はmiss
の値を持ち、キャッシュされている場合はhit
**の値を持つことがあります。
ヘッダー**Cf-Cache-Status
**でも同様の動作があります。
**Cache-Control
**は、リソースがキャッシュされているかどうか、次回キャッシュされる時期を示します:Cache-Control: public, max-age=1800
Vary
は、通常はキーがないヘッダーであっても、キャッシュキーの一部として扱われる追加のヘッダーを示すために、レスポンスでよく使用されます。
**Age
**は、オブジェクトがプロキシキャッシュに存在している秒数を定義します。
**Server-Timing: cdn-cache; desc=HIT
**は、リソースがキャッシュされていたことも示します。
ローカルキャッシュヘッダー:
Clear-Site-Data
:削除すべきキャッシュを示すヘッダー:Clear-Site-Data: "cache", "cookies"
Expires
:レスポンスが期限切れになる日時を含む:Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
はCache-Control: no-cache
と同じです。
Warning
:**Warning
**一般HTTPヘッダーは、メッセージの状態に関する問題の可能性についての情報を含みます。レスポンスに複数のWarning
ヘッダーが表示されることがあります。Warning: 110 anderson/1.3.37 "Response is stale"
これらのヘッダーを使用するリクエスト:**If-Modified-Since
およびIf-Unmodified-Since
**は、レスポンスヘッダー**Last-Modified
**が異なる時間を含む場合にのみデータで応答されます。
**If-Match
およびIf-None-Match
**を使用する条件付きリクエストは、Etag値を使用し、データ(Etag)が変更された場合にウェブサーバーがレスポンスの内容を送信します。Etag
はHTTPレスポンスから取得されます。
Etag値は通常、レスポンスの内容に基づいて計算されます。例えば、ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
は、Etag
が37バイトのSha1であることを示します。
Accept-Ranges
:サーバーがレンジリクエストをサポートしているかどうか、またサポートしている場合はどの単位でレンジを表現できるかを示します。Accept-Ranges: <range-unit>
Range
:サーバーが返すべきドキュメントの部分を示します。
If-Range
:指定されたetagまたは日付がリモートリソースと一致する場合にのみ満たされる条件付きレンジリクエストを作成します。リソースの互換性のないバージョンから2つのレンジをダウンロードするのを防ぐために使用されます。
Content-Range
:完全なボディメッセージのどこに部分メッセージが属するかを示します。
Content-Length
: リソースのサイズ(バイト数の10進数)。
Content-Type
:リソースのメディアタイプを示します。
Content-Encoding
:圧縮アルゴリズムを指定するために使用されます。
Content-Language
:対象となる人間の言語を説明し、ユーザーが自分の好みの言語に応じて区別できるようにします。
Content-Location
:返されたデータの代替位置を示します。
ペンテストの観点から、この情報は通常「無駄」ですが、リソースが401または403で保護されている場合、これを取得する方法を見つけることができれば、これは興味深いかもしれません。
例えば、HEADリクエストでの**Range
とEtag
**の組み合わせは、HEADリクエストを介してページの内容を漏洩させることができます:
ヘッダーRange: bytes=20-20
を持つリクエストと、ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
を含むレスポンスは、バイト20のSHA1がETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y
であることを漏洩しています。
Server: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
Allow
:このヘッダーは、リソースが処理できるHTTPメソッドを伝えるために使用されます。例えば、Allow: GET, POST, HEAD
のように指定され、リソースがこれらのメソッドをサポートしていることを示します。
Expect
:クライアントがリクエストを正常に処理するためにサーバーが満たす必要がある期待を伝えるために使用されます。一般的な使用例は、クライアントが大きなデータペイロードを送信する意図を示すExpect: 100-continue
ヘッダーです。クライアントは、送信を進める前に100 (Continue)
レスポンスを探します。このメカニズムは、サーバーの確認を待つことでネットワークの使用を最適化するのに役立ちます。
HTTPレスポンスの**Content-Disposition
ヘッダーは、ファイルをインライン**(ウェブページ内)で表示するか、添付ファイル(ダウンロード)として扱うかを指示します。例えば:
これは「filename.jpg」という名前のファイルがダウンロードされて保存されることを意図していることを意味します。
CSPを通じて信頼されたタイプを強制することで、アプリケーションはDOM XSS攻撃から保護されます。信頼されたタイプは、確立されたセキュリティポリシーに準拠した特定のオブジェクトのみが危険なWeb API呼び出しに使用できることを保証し、デフォルトでJavaScriptコードを保護します。
このヘッダーはMIMEタイプのスニッフィングを防ぎます。これはXSS脆弱性につながる可能性があります。ブラウザがサーバーによって指定されたMIMEタイプを尊重することを保証します。
クリックジャッキングに対抗するために、このヘッダーはドキュメントが<frame>
、<iframe>
、<embed>
、または<object>
タグにどのように埋め込まれるかを制限し、すべてのドキュメントがその埋め込み許可を明示的に指定することを推奨しています。
CORPは、どのリソースがウェブサイトによって読み込まれるかを指定するために重要であり、クロスサイトの漏洩を軽減します。一方、CORSは、特定の条件下で同一オリジンポリシーを緩和し、より柔軟なクロスオリジンリソース共有メカニズムを可能にします。
COEP と COOP は、クロスオリジンの隔離を有効にするために不可欠であり、Spectre のような攻撃のリスクを大幅に低減します。これらは、それぞれクロスオリジンリソースの読み込みとクロスオリジンウィンドウとの相互作用を制御します。
最後に、HSTSはブラウザがサーバーと安全なHTTPS接続のみで通信することを強制するセキュリティ機能であり、プライバシーとセキュリティを向上させます。
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)