Entrada

Access Control Vulnerabilities Lab 3

Access Control Vulnerabilities Lab 3

Skills

  • User role controlled by request parameter

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio tiene un panel de administración en /admin, que identifica a los administradores utilizando una cookie falsificable. Para resolver el laboratorio, hay que acceder al panel de administración y eliminar al usuario carlos. Podemos iniciar sesión en nuestra cuenta con las credenciales wiener:peter


Resolución

Al acceder a la web nos sale esto

Pulsamos en My account y nos logueamos con las credenciales wiener:peter

Fuzzeamos rutas y encontramos una llamada /admin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# ffuf -c -t 20 -w /usr/share/seclists/Discovery/Web-Content/common.txt -u https://0a050019046d30238088b7a600ee00f4.web-security-academy.net/FUZZ  

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : https://0a050019046d30238088b7a600ee00f4.web-security-academy.net/FUZZ
 :: Wordlist         : FUZZ: /usr/share/seclists/Discovery/Web-Content/common.txt
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 20
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
________________________________________________

ADMIN                   [Status: 401, Size: 2588, Words: 1049, Lines: 54, Duration: 66ms]
Admin                   [Status: 401, Size: 2588, Words: 1049, Lines: 54, Duration: 56ms]
Login                   [Status: 200, Size: 3163, Words: 1315, Lines: 64, Duration: 53ms]
admin                   [Status: 401, Size: 2588, Words: 1049, Lines: 54, Duration: 54ms]
analytics               [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 139ms]
favicon.ico             [Status: 200, Size: 15406, Words: 11, Lines: 1, Duration: 61ms]
filter                  [Status: 200, Size: 10717, Words: 5065, Lines: 199, Duration: 56ms]
login                   [Status: 200, Size: 3163, Words: 1315, Lines: 64, Duration: 58ms]
logout                  [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 54ms]
my-account              [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 55ms]

Si accedemos a /admin nos muestra este mensaje

Si interceptamos la petición mediante Burpsuite vemos que hay un parámetro Admin=False

Cambiamos el parámetro a Admin=true, hacemos click izquierdo y seleccionamos la opción Show response in browser. Al acceder se nos muestra el panel administrativo

Si pulsamos sobre Delete nos llevará a https://0a050019046d30238088b7a600ee00f4.web-security-academy.net/admin/delete?username=carlos pero no se eliminará el usuario. Para que el usuario se elimine debemos hacer la petición desde Burpsuite con el parámetro Admin=True

Otra opción sería cambiar el parámetro directamente en el navegador

Esta entrada está licenciada bajo CC BY 4.0 por el autor.