2FA broken logic
Laboratorio de Portswigger sobre Authentication Vulnerabilities
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene una autenticación de dos factores vulnerable debido a su lógica defectuosa. Para resolver el laboratorio, debemos acceder a la página de la cuenta de Carlos. Podemos usar nuestras credenciales wiener:peter. El nombre de usuario de la víctima es carlos. También tenemos acceso al servidor de correo electrónico para recibir el código de verificación 2FA
Guía de authentication vulnerabilities
Antes de completar este laboratorio es recomendable leerse esta guía de authentication vulnerabilities https://justice-reaper.github.io/posts/Authentication-Vulnerabilities-Guide/
Resolución
Al acceder a la web nos sale esto
Pulsamos sobre My account y nos logueamos usando las credenciales wiener:peter
Nos dirigimos a nuestro Email client y copiamos el código de verificación de dos factores
Introducimos el código de verificación e iniciamos sesión
Introducimos el código de dos factores y capturamos la petición vemos que en la cookie lleva el nombre de usuario para el cual se va a generar el código de acceso
Si cambiamos solamente el parámetro verify a carlos y bruteforceamos el mfa-code no funcionaría debido a que estamos usando la sesión del usuario wiener. Sin embargo, en este caso si borramos el campo session de la cookie seguimos pudiendo tramitar la petición. El código de autenticación lo podemos obtener accediendo a nuestro Email client
Mandamos la petición al Intruder, cambiamos el parámetro verify a carlos y seleccionamos el mfa-code para bruteforcearlo
Configuramos el payload
Otra forma de configurar un payload válido es esta
Llevamos a cabo de ataque de fuerza bruta y filtramos por Length o por status code para ver si hay algunas petición devuelve alguna longitud diferente o nos devuelve un código de estado 302
Enviamos esta petición al Repeater y confirmamos que efectivamente es válido el código
Hacemos click derecho y pulsamos sobre Request in browser > In original session
Accedemos a la cuenta del usuario carlos














