2FA simple bypass
Laboratorio de Portswigger sobre Authentication Vulnerabilities
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene un fallo de lógica que permite bypassear la autenticación en dos factores. Ya hemos obtenido un nombre de usuario y contraseña válidos, pero no tenemos acceso al código de verificación 2FA del usuario. Para resolver el laboratorio, debemos acceder a la página de cuenta de Carlos. Nuestras credenciales son wiener:peter y las credenciales de la víctima son carlos:montoya
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 con las credenciales wiener:peter
Al iniciar sesión nos pide un código de acceso
Para obtener el código de acceso tenemos que acceder a nuestro email pulsando en Email client
Introducimos el código de verificación y nos redirige a https://0afd0070041eb7598130da9f00c700a0.web-security-academy.net/my-account?id=wiener
Si nos fijamos cuando no estamos logueados tenemos una cookie
Si pulsamos Ctrl + F5 para recargar la página borrando el caché tampoco cambia el valor de la cookie. Sin embargo si iniciamos sesión con nuestras credenciales wiener:peter vemos que nos pide el segundo factor de autenticación pero que también nos setea una nueva cookie
Si nos setea una nueva cookie esto significa que hemos iniciado sesión correctamente, por lo tanto, podríamos acceder a /my-account sin necesidad de introducir el código del segundo factor de autenticación. Esto lo podemos ver accediendo a https://0afd0070041eb7598130da9f00c700a0.web-security-academy.net/my-account
Si hemos podido hacerlo con nuestra cuenta también podremos hacerlo con la de carlos, para ello nos logueamos con las credenciales carlos:montoya
Si ahora accedemos a https://0afd0070041eb7598130da9f00c700a0.web-security-academy.net/my-account con la sesión de carlos iniciada podremos bypassear el segundo factor de autenticación. El problema de la web es que primero nos iniciamos la sesión y luego nos pide el código de dos factores, lo cual no tiene sentido porque podemos bypassearlo de esta forma tan sencilla











