
Descripción
This lab implements access controls based partly on the HTTP method of requests. You can familiarize yourself with the admin panel by logging in using the credentials administrator:admin
.
To solve the lab, log in using the credentials wiener:peter
and exploit the flawed access controls to promote yourself to become an administrator.
Method-based access control can be circumvented writeup
Entraremos al laboratorio y veremos una tienda online. Pulsaremos en ‘My account’ e iniciaremos sesión con el usuario ‘administrator’ y la contraseña ‘admin’. Ahora nos aparecerá un ‘Admin panel’. Al entrar veremos que podemos cambiar los privilegios de los usuarios:

Como en la descripción pone que wiener se tiene que dar permisos de admin a si mismo, no funcionará usar este panel, pero interceptaremos la petición de mejorar los privilegios del usuario ‘carlos’ con el ‘Logger’ de Burp Suite. Encontramos la petición, que será la siguiente:

La enviamos al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater. Antes de seguir, cerramos sesión de ‘administrator’ en ‘My account’ -> ‘Log out’ y la iniciamos con el usuario ‘wiener’ y la contraseña ‘peter’.
Ahora, en la página web, damos Click derecho -> Inspeccionar -> Application -> Cookies y copiamos la cookie de sesión:

Esta cookie sustituirá a la existente en el ‘Repeater’, lo que hará que las peticciones las realice ahora el usuario ‘wiener’. Realizaremos los siguientes cambios en la petición:
- Cambiaremos la cookie por la del navegador (usuario ‘wiener).
- Cambiaremos el parámetro del username ‘carlos’ por ‘wiener’.
- Cambiaremos el método de ‘POST’ a ‘GET’ para poder evitar las medidas de seguridad.
- Añadiremos a la URL ‘?username=wiener’, debido a que ahora estamos usando el método GET y hay que enviar el parámetro por la URL.
- También añadiremos &action=upgrade, para poner por la URL la acción (con GET no se examinará nada del cuerpo de la petición, así que lo podremos borrar y tenemos que distribuir toda la información en la URL).
Nota: También se pueden hacer todos los pasos automáticamente con Click derecho -> Change request method, en la parte de ‘Request’ del ‘Repeater’.
La petición quedará tal que así:

Y al volver al navegador habremos completado el laboratorio:
