Session management flaws: no token rotation, no expiry, session ID in URLs, and logout that does not invalidate server-side. Work through each step in order.
Broken authentication covers flaws in how sessions, tokens, and credentials are managed. Common issues include no session expiry, tokens that never rotate on login, predictable session IDs, and no re-authentication for sensitive actions.
| True Negative | Valid credentials accepted (correct behavior) |
| True Positive | Invalid credentials rejected with 401 |
| Bug Found | Session ID not rotated after login - fixation risk |
| Bug Found | Session ID exposed in profile URL - visible in logs and browser history |
| Bug Found | Logout does not invalidate server-side session |
| Bug Found | Logged-out session ID still accepted - reuse attack possible |
| Bug Found | Session never expires - no inactivity timeout enforced |
Test Flow - Work through steps 1 to 7 in order
POST x-www-form-urlencoded for steps 1-3, 5-7action=init - copy the session_id from responseaction=login with username=admin, password=password123, session_id=action=check-rotation - pass pre_login_id and post_login_id - they will be the sameGET /qa-sandbox/broken-auth/profile/?session_id= - token in URL is the bugaction=logout with session_id=action=check-session after logout - session still accepted (bug)action=check-expiry - session has no timeout, valid indefinitely (bug)session_id with a test script: pm.environment.set("session_id", pm.response.json().session_id)