HTTP Connection Contamination

Support HackTricks

この記事の要約は次のとおりです: https://portswigger.net/research/http-3-connection-contamination。詳細はそちらをご覧ください!

ウェブブラウザは、共有IPアドレスと共通のTLS証明書がある場合、異なるウェブサイトのために単一のHTTP/2+接続を再利用できますHTTP接続のコアレッシングを通じて。しかし、これはリバースプロキシにおける最初のリクエストルーティングと衝突する可能性があり、後続のリクエストが最初のリクエストによって決定されたバックエンドに送信されます。この誤ルーティングは、特にワイルドカードTLS証明書や*.example.comのようなドメインと組み合わせると、セキュリティの脆弱性を引き起こす可能性があります。

例えば、wordpress.example.comsecure.example.comが同じリバースプロキシによって提供され、共通のワイルドカード証明書を持っている場合、ブラウザの接続コアレッシングにより、secure.example.comへのリクエストが誤ってWordPressバックエンドによって処理され、XSSのような脆弱性を悪用される可能性があります。

接続コアレッシングを観察するには、ChromeのネットワークタブやWiresharkのようなツールを使用できます。テスト用のスニペットは次のとおりです:

fetch('//sub1.hackxor.net/', {mode: 'no-cors', credentials: 'include'}).then(()=>{ fetch('//sub2.hackxor.net/', {mode: 'no-cors', credentials: 'include'}) })

現在の脅威は、最初のリクエストルーティングの稀少性とHTTP/2の複雑さにより制限されています。しかし、IPアドレスの一致要件を緩和するHTTP/3の提案された変更は、攻撃面を広げ、MITM攻撃を必要とせずにワイルドカード証明書を持つサーバーをより脆弱にする可能性があります。

ベストプラクティスには、リバースプロキシでの最初のリクエストルーティングを避け、特にHTTP/3の登場に伴い、ワイルドカードTLS証明書に注意することが含まれます。これらの複雑で相互に関連する脆弱性について定期的にテストし、意識することは、ウェブセキュリティを維持するために重要です。

Support HackTricks

Last updated