# Contaminación de Conexión HTTP
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**El contenido de este post fue tomado de** [**https://portswigger.net/research/http-3-connection-contamination**](https://portswigger.net/research/http-3-connection-contamination)\*\*\*\* Los navegadores web utilizan la [**coalescencia de conexión HTTP**](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing), lo que les permite **reutilizar** una única **conexión HTTP/2+** para solicitudes que van a **diferentes sitios web**, siempre y cuando los sitios **se resuelvan a la misma dirección IP** y utilicen un certificado TLS válido para ambos nombres de host. El **enrutamiento de la primera solicitud** es un comportamiento peligroso de proxy inverso donde el **proxy analiza la primera solicitud** en una conexión para averiguar a **qué extremo de back-end** dirigirla, y luego **envía** todas las **solicitudes posteriores** en esa conexión al **mismo extremo de back-end**. **La coalescencia de conexiones y el enrutamiento de la primera solicitud no funcionan bien juntos**. Por ejemplo, imagina que secure.example.com y wordpress.example.com están detrás de un proxy inverso que utiliza un certificado válido para \*.example.com: ```shell-session $ nslookup wordpress.example.com 52.16.179.7 // reverse proxy that supports HTTP/2 and does first-request routing $ nslookup secure.example.com 52.16.179.7 // same reverse proxy $ openssl s_client -connect x.portswigger-labs.net:443 subject=/CN=*.example.com // wildcard TLS certificate ``` Si un navegador intenta enviar una solicitud a **wordpress.example.com** seguido de **secure.example.com**, la combinación de conexiones del navegador forzará **ambas solicitudes en una sola conexión** al front-end. El enrutamiento de la primera solicitud resultará en que la **solicitud a secure.example.com sea incorrectamente enrutada al back-end de WordPress**. Esto significa que si encuentras [XSS](https://portswigger.net/web-security/cross-site-scripting) en wordpress.example.com, ¡puedes usarlo para comprometer secure.example.com! ```javascript // create HTTP/2+ connection fetch('https://wordpress.example.com/', {credentials: 'include'}) // connection coalescing will force this down the same connection... // ...leading to the front-end misrouting it to WordPress // the browser thinks our injected JS is coming from secure.example.com // exposing saved passwords, cookies, etc. location='https://secure.example.com/plugin/x?q=