Attacking password-based authentication
What is it?
Password-based authentication generally allows to register an account and set a password, or sometimes an account will be assigned to them by an administrator. Password-based authentication tends to be suseptible to brute-force attacks, account lockouts and credential stuffing attacks.
A simple example
A vulnerable web application allows users to sign up and set a password.
After 10 failed login attempts, an account is locked.
If an attacker uses 9 common passwords against many user accounts, they will gain access to ones that chose weak or common passwords.
Broken authentication can often lead to:
Account takeover
Sensitive data exposure
Other learning resources:
PortSwigger: https://portswigger.net/web-security/authentication
Writeups:
Have a good writeup & want to share it here? Drop me a message on LinkedIn.
Checklist
Is there any brute-force protection?
Check for account lockouts
Check for rate limiting
Check for CAPTCHA
Check for MFA
What is the password policy?
Check the strength requirements
Is the password stored securely? (E.g. if we reset, will it send us the cleartext password)
Is the password reset token sufficiently unique?
Are credentials predictable?
Check for default credentials
Check for username conventions (E.g. firstname.lastname)
Is autocomplete enabled on password fields?
Check the password reset functionality
Knowledge-based questions
Token leakage via Referrer
Token predictability
Is authentication happening client-side?
Are there any backups or leaked files with creds?
Is there remember me or auto login functionality?
Are the tokens for this predictable?
How long does the token remain valid?
Are tokens or credentials passed via the URL?
Are there CSRF tokens?
Last updated