Descripción

This lab is vulnerable to request smuggling because the front-end server downgrades HTTP/2 requests and fails to adequately sanitize incoming headers.

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

HTTP/2 request splitting via CRLF injection 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:

Tampoco funciona, no es vulnerable a H2.CL.

Probaremos ahora con una inyección CLRF, añadiendo al Request header la siguiente información:

Nota: Es necesario para que funcione que la petición tenga una cookie de sesión.

Después de enviar la petición varias veces, envenenaremos la cola de respuestas y conseguiremos la cookie de sesión del administrador:

Al cambiarla por la nuestra en el navegador se romperá la página. Actualizaremos varias veces hasta que vuelva a la normalidad y nos deje acceder a ‘Admin panel’, donde borraremos al usuario ‘carlos’ y completaremos el laboratorio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *