Descripción

This lab involves a front-end and back-end server, and the front-end server doesn’t support chunked encoding.

To solve the lab, smuggle a request to the back-end server, so that a subsequent request for / (the web root) triggers a 404 Not Found response.

HTTP request smuggling, confirming a CL.TE vulnerability via differential responses writeup

En este caso nos encontramos ante una vulnerabilidad CL.TE, lo que significa:

Usaremos la siguiente tabla para ayudarnos a detectar el origen y el motivo de la vulnerabilidad HTTP Smuggling:

Entramos al laboratorio con el ‘Logger’ encendido y capturamos la petición de la raíz ‘/’. La llevaremos al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater. Allí realizaremos los siguientes cambios:

  1. En Inspector -> Request attributes, cambiamos la versión de HTTP a 1.1.
  2. Damos Click derecho -> Change request method, para cambiar el método a POST.
  3. Añadimos la propiedad ‘Transfer-encoding’ con el valor chunked.
  4. Desactivamos de las opciones al lado de ‘Send’ ‘Update content length’.
  5. Activamos la opción de ver los caracteres especiales con ‘\n’.
  6. De manera opcional también se pueden borrar todos los atributos no necesarios para este laboratorio, como se puede ver en la siguiente captura:

El resultado debe ser el siguiente:

Ahora, modificamos la petición de la siguiente forma para añadir otra petición HTTP en ella:

Nota: Es importante que no finalice la petición con ‘\r’ o ‘\n’ para que así se una la siguiente petición a ella. También es necesario añadir alguna propiedad al encabezado HTTP, en este caso ‘Test: Test’.

Enviaremos esta petición y, seguidamente enviaremos la capturada en el ‘Logger’ de la raíz:

Ahora, la petición de la raíz será interpretada por el servidor como una continuación de la petición anterior, haciendo que busque la ruta ‘/lanzar404’, que devolverá un error 404. Hemos hecho que una petición que no estaba relacionada con la anterior sea relacionada por el servidor como la continuación.

Si volvemos la laboratorio lo habremos completado:

Deja una respuesta

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