Lab: Username enumeration via response timing
The application will block you after few attempts

get the header checklist
https://appsecexplained.gitbook.io/appsecexplained/bypassing-controls/rate-limiting
when you put this in the header request
it will remove your restriction

then try sending like 5 attempts
it will also lock

changing the ip from 1.2.3.4 to 1.2.3.5
you will get unlocked

when you change the others headers and you still got restricted
it means that 'X-Forwarded-For:1.2.3.5'
is the only header we need

choose pitchfork it will try the number first in the set 1
then it will try the usernames in set 2
use a long string password so that we will know what is the valid username based on response data

for set 1 choose number 10-110 because we have 101 usernames in username.txt

load the usernames

ftp user is the highest response received
why? because ftp is a valid username and that's why with the password that is too long it will response also a large amount of data

now we will bruteforce for password
put ftp as username

Now we have jordan password since it returns 302 status code indicates a redirection to another page

we cant really login as of now because we have a lockout with 30mins

but we can intercept the request and use the payload 'x-forwarded'
with correct username and password

now we solved the lab

Last updated