← Back to Writeups
PORTSWIGGERN/AAccess Control

User ID controlled by request parameter with password disclosure

XESXOR9/2/20262 min read
#access control#portswigger#web-security-academy#access-control

User ID controlled by request parameter with password disclosure

Platform: PortSwigger | Category: Access Control | Type: Lab | Difficulty: N/A | OS: N/A | Author: XESXOR | Date: 2026-08-24 | Status: Solved Techniques: Web Security Academy, Access Control

Summary

Walkthrough of the PortSwigger Web Security Academy lab User ID controlled by request parameter with password disclosure (Access Control). This lab demonstrates a access control vulnerability and its exploitation to achieve the lab objectives.

Lab Overview

PortSwigger Web Security Academy — Access Control

This writeup is part of the XESXOR PortSwigger collection. The original lab description and solution have been preserved and reformatted for clarity.

Lab Description :

image

Solution :

The account page that contains the current user's existing password, prefilled in a masked input. So lets login as wiener to see what the account page has.

image

We can see there is a pre filled password in the password field. We can't see the password in plaintext but we can try reloading the page / view source-code to see what the password is.

image

So the password is prefilled with the password of the user winer which we logged in.

Now if we click on the My account link again after logging in , the apge reloads where it sends a request as below.

http
GET /my-account?id=wiener HTTP/2
Host: 0a33005d047134a3807cc18f00330037.web-security-academy.net
Cookie: session=jqKEHRYHaiBdzMZ9BLoiv8e1xTz24mLC
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://0a33005d047134a3807cc18f00330037.web-security-academy.net/my-account?id=wiener
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers

Change the parameter ?id=wiener to ?id=administrator.

image

Thus we have sucessfully exploited it as it leaked the admin's password in the response.

image

Password - nrmwf5x1228f0spbcvxt

Now we can login as admin & delete user carlos to solve the lab.

image

Key Takeaways / Lessons

  • Understanding Access Control detection and exploitation is crucial for web security.
  • Always validate and sanitize user input; implement proper access controls.
  • This lab is part of the PortSwigger Web Security Academy — practice in a safe, legal environment.

Crafted by XESXOR Research • 2026-08-24 • PortSwigger Web Security Academy • Lab: User ID controlled by request parameter with password disclosure