hacktricks/pentesting-web/http-connection-contamination.md

29 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HTTP接続の汚染
<details>
<summary><strong>**htARTEHackTricks AWS Red Team Expert**で**AWSハッキングをゼロからヒーローまで学ぶ**</strong></summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksのグッズ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
- **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。
- **ハッキングテクニックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
</details>
**この記事の要約です: [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**。詳細についてはそちらをご覧ください!
Webブラウザは、共有IPアドレスと共通のTLS証明書を介して、[HTTP接続の共有](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing)を通じて1つのHTTP/2+接続を異なるウェブサイトに再利用できます。ただし、これは逆プロキシにおける**最初のリクエストのルーティング**と競合する可能性があります。ここで、後続のリクエストは最初のリクエストによって決定されたバックエンドに向けられます。この誤ったルーティングは、特にワイルドカードTLS証明書と`*.example.com`のようなドメインと組み合わせると、セキュリティの脆弱性につながる可能性があります。
たとえば、`wordpress.example.com`と`secure.example.com`が同じ逆プロキシによって提供され、共通のワイルドカード証明書を持っている場合、ブラウザの接続共有によって`secure.example.com`へのリクエストが誤ってWordPressバックエンドで処理され、XSSなどの脆弱性が悪用される可能性があります。
接続共有を観察するには、ChromeのネットワークタブやWiresharkなどのツールを使用できます。テスト用のスニペットは以下の通りです
```javascript
fetch('//sub1.hackxor.net/', {mode: 'no-cors', credentials: 'include'}).then(()=>{ fetch('//sub2.hackxor.net/', {mode: 'no-cors', credentials: 'include'}) })
```
現在の脅威は、最初のリクエストのルーティングの稀少性とHTTP/2の複雑さにより、限定されています。ただし、HTTP/3で提案されている変更は、IPアドレスの一致要件を緩和するため、MITM攻撃を必要とせずに、ワイルドカード証明書を持つサーバーをより脆弱にする可能性があります。
ベストプラクティスには、リバースプロキシでの最初のリクエストのルーティングを避けること、特にHTTP/3の登場に注意してワイルドカードTLS証明書を慎重に扱うことが含まれます。これらの複雑で相互に関連する脆弱性の定期的なテストと認識は、Webセキュリティを維持するために重要です。