
Descripción
This lab involves a front-end and back-end server, and the front-end server doesn’t support chunked encoding. The front-end server rejects requests that aren’t using the GET or POST method.
To solve the lab, smuggle a request to the back-end server, so that the next request processed by the back-end server appears to use the method GPOST
.
HTTP request smuggling, basic CL.TE vulnerability writeup
Dividiremos el laboratorio en dos fases:
Detectar la vulnerabilidad CL.TE
CL.TE significa lo siguiente:
- El servidor front-end utiliza la propiedad del encabezado HTTP ‘Content-Length’.
- El servidor back-end utiliza la propiedad del encabezado HTTP ‘Transfer-Encoding’.
En este laboratorio la extensión ‘HTTP Request Smuggler’ no funcionará, por lo que realizaremos las comprobaciones de forma manual. También los siguientes cambios sobre la petición a la raíz en el ‘Repeater’:
- En Inspector -> Request attributes, cambiamos la versión de HTTP a 1.1.
- Damos Click derecho -> Change request method, para cambiar el método a POST.
- Añadimos la propiedad ‘Transfer-encoding’ con el valor chunked.
- Activamos la opción de ver los caracteres especiales con ‘\n’.
- De manera opcional también se pueden borrar todos los atributos no necesarios para este laboratorio, como se puede ver en la siguiente captura:
Nota: En este caso, como es una vulnerabilidad CL.TE, sólo desactivaremos la opción ‘Update content length’ para verificar que es esta vulnerabilidad:


Comprobamos así que consiste en una vulnerabilidad CL.TE.
Forzar una petición GPOST
Configuraremos la petición de ataque de la siguiente forma:

Al enviar la petición dos veces saldrá el mensaje de ‘Unrecognized method GPOST’, completando así el laboratorio:
