
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, delete the user carlos
by using response queue poisoning to break into the admin panel at /admin
. An admin user will log in approximately every 15 seconds.
The connection to the back-end is reset every 10 requests, so don’t worry if you get it into a bad state – just send a few normal requests to get a fresh connection.
Response queue poisoning via H2.TE request smuggling writeup
Dividiremos el laboratorio en tres 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.TE:
Por un lado la petición maligna (sin ‘Content-Length’ y con la opción de actualizarlo desactivado):

Y luego la petición normal:

Vemos que el HTTP Smuggling attack es posible, por lo que procedemos a envenenar la cola de peticiones del servidor, para que nos devuelva la del inicio de sesión del administrador. Hay dos métodos para realizar esto:
Método 1: De forma manual
Iremos enviando cada 5 segundos la petición maliciosa hasta que tengamos la siguiente respuesta:

Daremos Click derecho en la respuesta -> Show response in browser, copiaremos el enlace, lo abriremos en el navegador, iremos a ‘Admin panel’ y borraremos al usuario ‘carlos’, completando así el laboratorio:

Método 2: De forma automática con el ‘Intruder’
Nos llevarnos la petición maliciosa al ‘Intruder’ con la siguiente configuración:

Pondremos que se envíe una petición cada 800 ms de forma indefinida:

Desactivaremos la opción de acutalizar el ‘Content-Length’:

Luego filtraremos por el código 3XX. Este método a mi no me dio resultado.