
Descripción
This lab is vulnerable to request smuggling because the front-end server downgrades HTTP/2 requests even if they have an ambiguous length.
To solve the lab, perform a request smuggling attack that causes the victim’s browser to load and execute a malicious JavaScript file from the exploit server, calling alert(document.cookie)
. The victim user accesses the home page every 10 seconds.
H2.CL request smuggling writeup
Dividiremos el laboratorio en dos fases:
Detectar el tipo de vulnerabilidad HTTP smuggling
Primero, tendremos que verificar el tipo de vulnerabilidad HTTP smuggling:

Intentaremos modificar la petición a la raíz como ambos payloads, pero no dará resultado:


Esto nos dice que el ataque debe ser realizado en HTTP/2. Probaremos con la siguiente configuración para comprobar un ataque H2.CL:
Por un lado la petición maligna (con el cálculo del ‘Content-Length’ desactivado en las opciones y son ‘Transfer-Encoding’):

Y luego la petición normal:

Esto sucede porque el front-end no está comprobando adecuadamente el ‘Content-Length’ y está confiando en el parámetro que estamos introduciendo nosotros.
Ataque HTTP Smuggling con XSS
Ahora, lo que haremos será redirigir a la vícitma a nuestro ‘Exploit server’ y allí hacer que ejecute un alert(document.cookie).
Sin embargo, si añadimos a la segunda petición un atributo ‘Host’, será sobrescrito por el atributo ‘Host’ de la petición de la víctima, tenemos que modificar nuestra petición para que la de la víctima entre en el cuerpo de la nuestra:

Y modificaremos el contenido del exploit server:

Pulsaremos ‘Store’ y enviaremos nuestra petición, en un minuto se completará el laboratorio:
