HTTP Connection Contamination

Support HackTricks

Це резюме посту: https://portswigger.net/research/http-3-connection-contamination. Перевірте його для отримання додаткових деталей!

Веб-браузери можуть повторно використовувати одне з'єднання HTTP/2+ для різних веб-сайтів через HTTP connection coalescing, за умови спільних IP-адрес і загального TLS сертифіката. Однак це може конфліктувати з маршрутизацією першого запиту в зворотних проксі, де наступні запити направляються на бекенд, визначений першим запитом. Це неправильне маршрутизування може призвести до вразливостей безпеки, особливо в поєднанні з сертифікатами wildcard TLS і доменами, такими як *.example.com.

Наприклад, якщо wordpress.example.com і secure.example.com обслуговуються одним і тим же зворотним проксі і мають спільний сертифікат wildcard, коалесціювання з'єднання браузера може призвести до того, що запити до 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. Однак запропоновані зміни в HTTP/3, які послаблюють вимогу до збігу IP-адреси, можуть розширити поверхню атаки, роблячи сервери з сертифікатом wildcard більш вразливими без необхідності атаки MITM.

Найкращі практики включають уникнення маршрутизації першого запиту в зворотних проксі та обережність з сертифікатами TLS wildcard, особливо з появою HTTP/3. Регулярне тестування та усвідомлення цих складних, взаємопов'язаних вразливостей є критично важливими для підтримки веб-безпеки.

Last updated