Authentication bypass via flawed state machine
Laboratorio de Portswigger sobre Business Logic Vulnerabilities
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio asume de forma errónea la secuencia de eventos en el proceso de inicio de sesión. Para resolver el laboratorio, debemos explotar esta falla para bypassear el panel de autenticación del laboratorio, acceder a la interfaz de administración y eliminar al usuario carlos. Podemos iniciar sesión en nuestra propia cuenta utilizando las credenciales wiener:peter
Resolución
Al acceder a la web vemos esto
Fuzzeamos en busca de rutas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ffuf -t 10 -w /usr/share/seclists/Discovery/Web-Content/common.txt -u https://0ae300ee034263be8076d50c00ac0014.web-security-academy.net/FUZZ
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : https://0ae300ee034263be8076d50c00ac0014.web-security-academy.net/FUZZ
:: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/common.txt
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 10
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
________________________________________________
ADMIN [Status: 401, Size: 2621, Words: 1049, Lines: 54, Duration: 58ms]
Admin [Status: 401, Size: 2621, Words: 1049, Lines: 54, Duration: 57ms]
Hacemos click sobre My account y nos logueamos con las credenciales wiener:peter
Al loguearnos vemos esto
He probado a capturar la petición a /role-selector y asignarle un rol direferente, como admin o administrator pero no ha dado resultado. Como al loguearnos nos redirige a /role-selector, puede que sea necesario seleccionar un rol. Vamos a capturar la petición de login
Pulsamos en forward hasta llegar a /role-selector, vamos a dropear esta petición y posterior pulsamos en forward
Al volver al navegador veremos esto
Accedemos a /admin y borramos al usuario carlos, hemos podido acceder porque el rol que se nos asigna por defecto es el de administrador







