Method-based access control can be circumvented writeup

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:

  1. Cambiaremos la cookie por la del navegador (usuario ‘wiener).
  2. Cambiaremos el parámetro del username ‘carlos’ por ‘wiener’.
  3. Cambiaremos el método de ‘POST’ a ‘GET’ para poder evitar las medidas de seguridad.
  4. 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.
  5. 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:

Deja una respuesta

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