hacktricks/pentesting-web/http-response-smuggling-desync.md

61 lines
6.5 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
# HTTP Response Smuggling / Desync
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿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 de exclusivos [**NFTs**](https://opensea.io/collection/the-peass-family)
* Consigue el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
2023-06-05 18:33:24 +00:00
* **Ú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 PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Desincronización de la cola de solicitudes HTTP
En primer lugar, esta técnica **abusa de una vulnerabilidad de HTTP Request Smuggling**, por lo que es necesario saber qué es:
La **principal** **diferencia** entre esta técnica y un HTTP Request smuggling común es que, **en lugar de atacar la solicitud del víctima agregando un prefijo**, vamos a **filtrar o modificar la respuesta que recibe la víctima**. Esto se hace enviando 2 solicitudes completas para desincronizar la cola de respuestas de los proxies, en lugar de enviar 1 solicitud y media para abusar del HTTP Request smuggling.
2023-06-05 18:33:24 +00:00
Esto se debe a que vamos a poder **desincronizar la cola de respuestas** para que la **respuesta** de la **solicitud legítima** de la **víctima sea enviada al atacante**, o **inyectando contenido controlado por el atacante en la respuesta a la víctima**.
### Desincronización de la canalización HTTP
HTTP/1.1 permite solicitar **diferentes recursos sin necesidad de esperar a que se completen los anteriores**. Por lo tanto, si hay un **proxy** en el **medio**, es tarea del proxy **mantener una coincidencia sincronizada de las solicitudes enviadas al backend y las respuestas que llegan de él**.
Sin embargo, hay un problema para desincronizar la cola de respuestas. Si un atacante envía un ataque de HTTP Response smuggling y las respuestas a la **solicitud inicial y la oculta se responden inmediatamente**, la respuesta oculta no se insertará en la cola de respuesta de la víctima, sino que **se descartará como un error**.
2023-06-05 18:33:24 +00:00
![](<../.gitbook/assets/image (635) (1) (1) (1).png>)
Por lo tanto, es necesario que la **solicitud oculta** **tome más tiempo para procesarse** dentro del servidor de back-end. Por lo tanto, cuando se procese la solicitud oculta, la comunicación con el atacante habrá terminado.
2023-06-05 18:33:24 +00:00
Si en esta situación específica una **víctima ha enviado una solicitud** y la **solicitud oculta se responde antes** de la solicitud legítima, la **respuesta oculta se enviará a la víctima**. Por lo tanto, el atacante estará **controlando la solicitud "realizada" por la víctima**.
2023-06-05 18:33:24 +00:00
Además, si el **atacante realiza una solicitud** y la **respuesta legítima** a la **solicitud de la víctima se responde antes** de la solicitud del atacante. La **respuesta a la víctima se enviará al atacante**, **robando** la respuesta a la víctima (que puede contener, por ejemplo, el encabezado **Set-Cookie**).
![](<../.gitbook/assets/image (658) (1).png>)
![](<../.gitbook/assets/image (655) (1) (1) (1).png>)
### Múltiples inyecciones anidadas
Otra **diferencia interesante** con el **HTTP Request Smuggling** común es que, en un ataque de smuggling común, el **objetivo** es **modificar el comienzo de la solicitud de la víctima** para que realice una acción inesperada. En un ataque de **HTTP Response smuggling**, como se están **enviando solicitudes completas**, se puede **inyectar en una carga útil decenas de respuestas** que **desincronizarán a decenas de usuarios** que **recibirán las respuestas inyectadas**.
Además de poder **distribuir más fácilmente decenas de exploits** entre usuarios legítimos,
2023-06-05 18:33:24 +00:00
## Referencias
* No olvides revisar este video que explica todas estas técnicas muy bien: [https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s](https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿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**? ¡Revisa 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 PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>