HTTP Connection Request Smuggling

Support HackTricks

この記事の要約は https://portswigger.net/research/browser-powered-desync-attacks です

Connection State Attacks

First-request Validation

リクエストをルーティングする際、リバースプロキシはHostヘッダーに依存して、宛先のバックエンドサーバーを特定することがあります。通常、アクセスが許可されたホストのホワイトリストに依存しています。しかし、一部のプロキシには、ホワイトリストが接続内の最初のリクエストにのみ適用されるという脆弱性があります。そのため、攻撃者は、最初に許可されたホストにリクエストを行い、その後同じ接続を通じて内部サイトをリクエストすることでこれを悪用することができます。

GET / HTTP/1.1
Host: [allowed-external-host]

GET / HTTP/1.1
Host: [internal-host]

First-request Routing

一部の構成では、フロントエンドサーバーが最初のリクエストのHostヘッダーを使用して、そのリクエストのバックエンドルーティングを決定し、その後、同じクライアント接続からのすべての後続リクエストを同じバックエンド接続に持続的にルーティングすることがあります。これは次のように示すことができます:

GET / HTTP/1.1
Host: example.com

POST /pwreset HTTP/1.1
Host: psres.net

この問題は、他の脆弱性を悪用したり、追加の仮想ホストへの不正アクセスを得るために、Host header attacks(パスワードリセットポイズニングやweb cache poisoningなど)と組み合わせることができます。

これらの脆弱性を特定するために、HTTP Request Smugglerの「connection-state probe」機能を利用できます。

HackTricksをサポートする

Last updated