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

6.5 KiB

HTTP Response Smuggling / Desync

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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.

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.

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.

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.

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).

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,

Referencias

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥