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

30 lines
4.2 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 Connection Contamination
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Це резюме посту: [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**. Перевірте його для отримання додаткових деталей!
Веб-браузери можуть повторно використовувати одне з'єднання HTTP/2+ для різних веб-сайтів через [HTTP connection coalescing](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing), за умови спільних IP-адрес і загального TLS сертифіката. Однак це може конфліктувати з **маршрутизацією першого запиту** в зворотних проксі, де наступні запити направляються на бекенд, визначений першим запитом. Це неправильне маршрутизування може призвести до вразливостей безпеки, особливо в поєднанні з сертифікатами wildcard TLS і доменами, такими як `*.example.com`.
Наприклад, якщо `wordpress.example.com` і `secure.example.com` обслуговуються одним і тим же зворотним проксі і мають спільний сертифікат wildcard, коалесціювання з'єднання браузера може призвести до того, що запити до `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-адреси, можуть розширити поверхню атаки, роблячи сервери з сертифікатом wildcard більш вразливими без необхідності атаки MITM.
Найкращі практики включають уникнення маршрутизації першого запиту в зворотних проксі та обережність з сертифікатами TLS wildcard, особливо з появою HTTP/3. Регулярне тестування та усвідомлення цих складних, взаємопов'язаних вразливостей є критично важливими для підтримки веб-безпеки.