Authorization disclaimer. This walkthrough is limited to the intentionally vulnerable PortSwigger Web Security Academy lab linked below. Test only systems you own or are explicitly authorized to assess.
Overview
The authentication control can be manipulated by carefully ordering login attempts around its IP-based blocking behavior.

Lab objective/setup
The supplied credentials, candidate lists, email client, and exploit server are used only inside this Academy instance to reproduce the authentication-flow evidence shown below.
What I observed
Three consecutive failures trigger a one-minute IP block, but any successful login from the same client resets the shared counter. A session macro logs in as Wiener before each Carlos guess, allowing Intruder to reach 1234567 without retaining the block.


Why it is vulnerable
Rate limiting that counts requests without binding failures to both account and client identity can be reset or bypassed.
Walkthrough in the authorized PortSwigger lab
Record a successful Wiener login as a Burp macro and attach it to a session-handling rule that runs before each Intruder request. This successful control login clears the shared IP failure count before the next Carlos attempt. Test Carlos’s candidate passwords and open the sole 302 result.



Verification
The final capture shows the Academy marking the broken brute-force protection, ip block exercise as solved after the documented request sequence. No testing was performed outside the isolated lab.

Impact and defensive lesson
Authentication controls must bind identity, challenge state, reset tokens, and retry counters to server-side transactions. Return uniform failures, rate-limit by both account and trusted client signals, and use random revocable persistent-session tokens rather than credential-derived values.