Bypassing rate limits via race conditions
Last updated
Last updated
This lab's login mechanism uses rate limiting to defend against brute-force attacks. However, this can be bypassed due to a race condition.
To solve the lab:
Work out how to exploit the race condition to bypass the rate limit.
Successfully brute-force the password for the user carlos
.
Log in and access the admin panel.
Delete the user carlos
.
You can log in to your account with the following credentials: wiener:peter
.
Upon analyzing the login functionality, I observed that the system blocks further attempts after three failed login attempts.
Sending the POST /login request to repeater, I created a Tab Group containing 20 requests. Testing various group sending methods (parallel, sequential), I discovered that sending requests in parallel (single-packet attack) didn't trigger the blocking mechanism.
Utilizing the Turbo Intruder extension with the "race-single-packet-attack.py" script, I made slight modifications.
After copying the password wordlists to my clipboard, I launched the attack.
Upon completion, I observed a 302 response, indicating success. Logging in with the discovered password "shadow," I accessed the admin panel and promptly deleted the user "carlos," thus solving the lab.