🗂️PortSwigger Lab Writeup: Multi-Step Process with no Access Control on One Step

🎯 Objective
The objective of this lab is to exploit a broken access control where the app has an admin panel with a flawed multi-step process for changing a user's role. The goal is to find a flawed access controls and exploit it to promote yourself to become an administrator.
- Lab URL:
https://portswigger.net/web-security/access-control/lab-multi-step-process-with-no-access-control-on-one-step - Category: Access Control
- Difficulty: Practitioner
🧪 Exploitation Steps
🕵️Step 1: Observe the Website
- Firstly open the lab URL in your browser, and observe what it is about and how it works.


- At first glance, the website seems to be a shopping website with a login page. In the lab description, it is mentioned that we need to promote user
wienerto administrator by exploiting a flawed access control.
📝Step 2: Promote carlos as Admin
- First login as administrator.

- Click on the Admin Panel.

- Send the Upgrade request to upgrade the user carlos to Admin.

- Click on yes to confirm it.
- Now, Under HTTP History in Burpsuite, send this same request to Repeater using
Ctrl + R
- Now, Log out from the Administrator account.
🧑💼Step 3: Promote wiener to Admin
- Login with the wiener credentials -
wiener:peter - Copy the session id of wiener and replace it with the request we just send to Repeater tab.
- Also change the user
carlostowienerin request and send it.
- Hence, we successfully promoted the user wiener to Administrator.
- And Finally, the Lab is solved.

🧠 Conclusion
- This lab demonstrated how missing access control on intermediate workflow steps allows privilege escalation. By capturing the upgrade request from an admin session and replaying it with a regular user's session token, we bypassed authorization checks and promoted wiener to administrator.
- The impact is critical — if any step in a multi-step process lacks authorization validation, attackers can perform privileged actions by crafting requests with their own credentials, leading to complete privilege escalation.
- Fix: enforce authorization checks on every step of multi-step processes, validate that the current user has permission for each action regardless of how they reached that step, use unpredictable and cryptographically signed tokens for state transitions, and log all state-changing operations for audit purposes.