To brute-force a login page, you should pay particular attention to any differences in
Status Codes
Error Messages
Response times
Password Based Login
To shorten the attack time, try enumerating one field at a time. For example, start with the username field and look at the response length. It's possible that separate responses have been given for the username and password fields. If successful with the username, move on to enumerating the password field. This is better than brute-forcing both fields simultaneously.
After logging in from the attacker's account, take note of the URL. Logout and attempt to login with victim credentials. When asked for a verification code, manually navigate to the previously noted URL.
get a reset password link using the attacker’s email. the request body consists of username field. change the username field to victim’s username and delete the value of the temp-forgot-password-token from URL and body and send the request.
Username enumeration via subtly different responses - run Intruder on the username field, select "options," add "grep extract," and then highlight the statements in the response that contain the error message.
to learn is that, even if we put the wrong username and password, some code flaw could be reflected. show some error message when both the fields are correct, when only one field is correct and when neither of them are correct. through this kinda, we can enumerate and find the correct one.
Username Enumeration via response timing -
Note: This approach first enumerates usernames and then passwords for efficiency, although a brute-force on both can also be performed using a single cluster bomb attack.
to learn is that even if we found the right username, and the password is something else and too long it. there could be a code flaw that would highlight that, “something is right, but not all of the things, so in checking that, it took time” - from this kind of thing, the username can be enumerated and we can find the correct one.
Flawed Brute Force Protection
maxiumum requests
is set as 1 in the Resource pool, that makes sure that one requests gets sent at one time so that when we are rotating between the right creds and trying to bruteforce the password, the requests gets sent in proper orderBroken Brute Force Protection, multiple credentials per request
A flaw in user rate limiting for brute force protection, system rate limits based on the HTTP requests sent from the user's IP, but it is possible to bypass this defense by sending multiple passwords in a single request
what to learn here is that passwords fields any input field can accept input as multiple values, so look for that. eg
"password":["lala","123456","password","qwerty",…]
and as for the lab, brute-force protection can be bypassed if an application accepts multiple credentials per request, allowing an attacker to test several passwords at once and avoid rate limiting.
Username enumeration via account lock
HTTP Basic Authentication
Authorization: Basic base64(username:password)
its not a secure way, unless the website also has HSTS applied, or else its open to MITM
basic auth also doesnt provide support to brute force protection, session related exploits like CSRF