Password brute-force via password change
Laboratorio de Portswigger sobre Authentication Vulnerabilities
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene una funcionalidad de cambio de contraseña vulnerable a ataques de fuerza bruta. Para resolver el laboratorio, debemos usar la lista de contraseñas candidatas para realizar un ataque de fuerza bruta contra la cuenta de carlos y acceder a su página de My account. Podemos usar nuestras credenciales wiener:peter para iniciar sesión, el nombre de usuario de la víctima es carlos y podemos usar el diccionario Candidate passwords https://portswigger.net/web-security/authentication/auth-lab-passwords para crackear la contraseña
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, nos logueamos usando las credenciales wiener:peter
Podemos cambiar nuestra contraseña
Si capturamos la petición de cambio de contraseña vemos lo siguiente
Si mandamos la petición al Repeater vemos que cuando la petición se tramita exitosamente y se cambia la contraseña nos devuelve un código de estado 200 OK y nos muestra el mensaje Password changed successfully!
Si hacemos lo mismo pero la contraseña es incorrecta y los otros dos campos coindicen nos devuelve un código de estado 302 Found y nos desloguea en todas las ocasiones, por lo tanto esta forma no la podemos usar para bruteforcear la contraseña. Sin embargo, si ponemos en el campo Current password una contraseña incorrecta y New password y Confirm new password no coinciden nos arroja el mensaje Current password is incorrect
Capturamos la petición y la mandamos al Intruder
Como payload usamos el diccionario Candidate passwords https://portswigger.net/web-security/authentication/auth-lab-passwords
Filtramos por Length y vemos que nos devuelve el mensaje New passwords do not match, lo que quiere decir que la contraseña empleada es la correcta
Nos logueamos con las credenciales carlos:michael










