Entrada

Business Logic Vulnerabilities Lab 9

Business Logic Vulnerabilities Lab 9

Skills

  • Authentication bypass via flawed state machine

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

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