Lion Cipher Lab

Close username and account enumeration oracles

Why it matters

Before an attacker can steal an account they usually want to know it exists. ACCOUNT ENUMERATION is the leak that tells them: a login that says 'no such user' for one email and 'wrong password' for another, a password-reset form that says 'we sent a link' only for real addresses, a signup that rejects an email as 'already registered', or — subtler and often missed — a login that is measurably SLOWER for real accounts because the expensive password hash only runs when the user exists. Each of these turns a guess into a confirmed hit. With a confirmed list of real accounts an attacker stuffs…

What you'll learn

Steps in this lab

  1. The vocabulary: an enumeration oracle, and its three channels
  2. Set up: confirm Python and make a folder (no installs, no internet)
  3. Build the VULNERABLE auth server (leaks all three ways)
  4. Build the attacker that MEASURES the leak
  5. Run the attack against the vulnerable server (measure BEFORE)
  6. Fix all three oracles (uniform message, uniform status, dummy hash)
  7. Re-run the SAME attacker against the fix (measure AFTER)
  8. Judgment: what this fixes, what it does NOT, and the traps
  9. What you did — and the reflex to keep

Open the full interactive lab →