HTTP/2 request smuggling via CRLF injection writeup

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, use an HTTP/2-exclusive request smuggling vector to gain access to another user’s account. The victim accesses the home page every 15 seconds.

If you’re not familiar with Burp’s exclusive features for HTTP/2 testing, please refer to the documentation for details on how to use them.

HTTP/2 request smuggling 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ñadiremos el ‘Transfer-Encoding: chunked’ a través del editor de Burp Suite:

Nota: Añadiremos el ‘\r\n’ con Shift + Enter.

Ahora volveremos a probar la misma secuencia de antes:

Con la petición maligna:

Con la petición normal:

Vemos que se ha realizado la redirección correctamente, ahora buscaremos en el laboratorio algún lugar donde poder reflejar la petición HTTP de la víctima, en este caso será la barra de búsqueda, que almacena las peticiones anteriores:

Estas búsquedas no dependen de la cookie de sesión, por lo que todo lo que busque otro usuario lo veremos nosotros. Capturaremos con el ‘Logger’ una petición de búsqueda y modificaremos la petición maligna para encapsular la de la víctima en la búsqueda:

Modificaremos la petición maligna de la siguiente forma:

Tras enviarla y esperar 15 segundos, veremos lo siguiente:

Cambiando la cookie en nuestro navegador y refrescando la página completaremos el laboratorio:

Deja una respuesta

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