Descripción

This lab involves a front-end and back-end server, and the back-end server doesn’t support chunked encoding. There’s an admin panel at /admin, but the front-end server blocks access to it.

To solve the lab, smuggle a request to the back-end server that accesses the admin panel and deletes the user carlos.

Exploiting HTTP request smuggling to bypass front-end security controls, TE.CL vulnerability writeup

Dividiremos el laboratorio en dos fases:

Detectar la vulnerabilidad TE.CL

TE.CL significa lo siguiente:

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’:

  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. Activamos la opción de ver los caracteres especiales con ‘\n’.
  5. En opciones, a la derecha de ‘Save’, desactivaremos la opción de ‘Update content length’, dado que este laboratorio tiene una vulnerabilidad CL.TE.
  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:

Para verificar que es esta vulnerabilidad:

Comprobamos así que consiste en una vulnerabilidad CL.TE.

Preparar la petición para hacer el ataque CL.TE

En este caso nuestra petición de ataque será la siguiente:

El resultado de enviar la petición maliciosa será el siguiente:

Y el de enviar la petición normal:

Confirmando que el ataque se ha realizado.

Acceder a /admin

Modificamos la petición maliciosa para acceder a ‘/admin’:

Nota: Al hacer esto hay que volver a recalcular el tamaño en hexadecimal, en este caso ’28’.

Al enviar la petición normal nos devolverá un error 401, no autorizado, con el mensaje ‘Admin interface only available to local users’. Volveremos a modificar la petición:

Añadimos la línea ‘Host: localhost’ y recalculamos el tamaño, en este caso ’39’. Al enviarla y después enviar la petición normal nos devolverá la pantalla del panel del administrador:

Volvemos a cambiar la petición de ataque:

Modificando la URL y el tamaño, siendo en este caso ’50’. Al enviarla y enviar después la petición normal completaremos el laboratorio:

Deja una respuesta

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