Lab 05 β Web Application Privilege Escalation
Welcome to Lab 05 β Web Application Privilege Escalation.
In the previous labs, you assessed privilege boundaries at the operating-system level.
Now the same principle moves into the application layer.
Your starting question is:
I AM AUTHENTICATEDAS A NORMAL USER.
CAN I ACCESS DATA,FUNCTIONS, OR ACTIONSTHAT MY ROLE SHOULDNOT BE ALLOWED TO USE?Web application privilege escalation commonly results from failures in:
AUTHENTICATION βIDENTITY βROLE βOBJECT OWNERSHIP βAUTHORIZATION βBUSINESS FUNCTION βPRIVILEGE BOUNDARYThe objective is not to randomly manipulate requests.
You will systematically determine:
WHO AM I?
WHAT SHOULD I ACCESS?
WHAT CAN I ACTUALLY ACCESS?
WHERE IS AUTHORIZATION ENFORCED?
CAN THE SERVER BE INDUCEDTO PROCESS AN UNAUTHORIZED ACTION?
WHAT IS THE BUSINESS IMPACT?Perform every activity only against the GoHackersCloud training application, an application you own, intentionally vulnerable lab software, or another application for which you have explicit authorization.
Mission Information
Section titled βMission InformationβLab: 05 β Web Application Privilege Escalation
Track: OffSec Labs
Difficulty: Intermediate β Advanced
Estimated Time: 3β5 Hours
Environment: Isolated Web Application Lab
Primary Role: Web Application Penetration Tester
Focus: Authorization and Application Privilege Escalation
Starting Position: Standard Authenticated User
Target: Unauthorized Application Function or Higher-Privilege Role
Deliverable: Web Application Authorization Assessment Report
Mission Scenario
Section titled βMission ScenarioβYou have been given authorized test accounts for a fictional enterprise application:
NovaPortalThe application contains multiple roles:
Standard User
Team Manager
Support Analyst
AdministratorYour assigned starting account is:
user01with:
Role:Standard UserThe organization wants to know whether a compromised standard account could access:
Another User's Data
Manager Functions
Support Functions
Administrative Pages
Administrative APIs
Restricted Objects
Sensitive Business WorkflowsYour objective is to evaluate the applicationβs authorization model and identify any privilege paths.
Lab Architecture
Section titled βLab Architectureβ TESTER | v +----------+ | Browser | | / Proxy | +----------+ | v +-------------+ | NovaPortal | |-------------| | Web / API | +-------------+ | +------+------+ | | v v +---------+ +---------+ | App/API | |Database | +---------+ +---------+Application roles:
user01 βSTANDARD USER
manager01 βMANAGER
admin01 βADMINISTRATORLearning Objectives
Section titled βLearning ObjectivesβBy completing this lab, you should be able to:
- Map application roles
- Establish expected authorization boundaries
- Identify application objects
- Analyze object ownership
- Review horizontal authorization
- Review vertical authorization
- Test administrative functions
- Test API authorization
- Review HTTP methods
- Evaluate workflow authorization
- Analyze session context
- Identify client-side authorization assumptions
- Validate authorization findings safely
- Build privilege paths
- Assess business impact
- Recommend secure authorization controls
- Produce professional evidence
Prerequisites
Section titled βPrerequisitesβYou should understand:
HTTP
HTTPS
Cookies
Sessions
Authentication
Authorization
REST APIs
JSON
HTTP Methods
Web Proxies
Browser Developer Tools
Basic Application SecurityAuthentication vs Authorization
Section titled βAuthentication vs AuthorizationβDo not confuse these two controls.
Authentication asks:
WHO ARE YOU?Authorization asks:
WHAT ARE YOUALLOWED TO DO?Conceptually:
LOGIN βAUTHENTICATION βIDENTITY βAUTHORIZATION βRESOURCE / FUNCTIONA user may authenticate correctly while the application still contains serious authorization failures.
Horizontal vs Vertical Privilege Escalation
Section titled βHorizontal vs Vertical Privilege EscalationβHorizontal
Section titled βHorizontalβA user reaches another userβs resources.
USER A βUSER B DATAExample:
user01accessing:
user02 profilewithout authorization.
Vertical
Section titled βVerticalβA lower-privileged user reaches higher-privileged functionality.
STANDARD USER βADMIN FUNCTIONBoth are important.
Phase 01 β Confirm Authorization
Section titled βPhase 01 β Confirm AuthorizationβRecord:
Application:
URL:
Authorized Accounts:
Roles:
Testing Window:
Allowed Functions:
Restricted Actions:
Evidence Rules:
Cleanup Requirements:Example:
Application:NovaPortal
Environment:Training Lab
Accounts:user01manager01admin01
Starting Account:user01
Objective:Assess authorization boundaries.
Destructive Actions:Not PermittedPhase 02 β Create an Evidence Workspace
Section titled βPhase 02 β Create an Evidence WorkspaceβCreate:
Web-Privilege-Lab/|+-- 01-Scope/|+-- 02-Roles/|+-- 03-Endpoints/|+-- 04-Objects/|+-- 05-Horizontal/|+-- 06-Vertical/|+-- 07-API/|+-- 08-Workflow/|+-- 09-Sessions/|+-- 10-Evidence/|+-- 11-Findings/|+-- 12-Report/For every test record:
Account
Role
Endpoint
Method
Object
Expected Authorization
Observed Authorization
Response
Security SignificancePhase 03 β Establish the Standard User Baseline
Section titled βPhase 03 β Establish the Standard User BaselineβLog in as:
user01Do not test privilege escalation yet.
First understand the legitimate experience.
Document:
Dashboard
Profile
Menu Items
Available Functions
Accessible Records
API Requests
Account SettingsPhase 04 β Record the Identity
Section titled βPhase 04 β Record the IdentityβIdentify how the application represents the logged-in user.
Possible indicators:
Username
User ID
Email
Role
Tenant
Team
OrganizationExample:
Username:user01
User ID:1001
Role:USER
Team:BluePhase 05 β Build the Role Matrix
Section titled βPhase 05 β Build the Role MatrixβUsing the lab accounts, document legitimate access for each role.
| Function | User | Manager | Admin |
|---|---|---|---|
| View own profile | Yes | Yes | Yes |
| Edit own profile | Yes | Yes | Yes |
| View team members | No | Yes | Yes |
| Approve request | No | Yes | Yes |
| User administration | No | No | Yes |
| System configuration | No | No | Yes |
This becomes your:
EXPECTED AUTHORIZATION MODELPhase 06 β Map Application Functions
Section titled βPhase 06 β Map Application FunctionsβAs each authorized lab role, document visible functions.
Example:
/profile
/account
/orders
/team
/reports
/admin
/admin/users
/admin/settings
/api/profile
/api/orders
/api/admin/usersDo not assume hidden endpoints are automatically vulnerable.
The important question is whether the server enforces authorization.
Phase 07 β Capture Representative Requests
Section titled βPhase 07 β Capture Representative RequestsβUsing your browserβs developer tools or an approved web proxy, capture requests for normal user actions.
Record:
URL
HTTP Method
Parameters
Cookies
Headers
Request Body
Response CodeExample:
GET /api/profile/1001Phase 08 β Identify Application Objects
Section titled βPhase 08 β Identify Application ObjectsβCommon objects include:
Users
Profiles
Orders
Tickets
Documents
Projects
Teams
Reports
Invoices
RequestsBuild an object inventory.
| Object | Identifier | Owner | Sensitivity |
|---|---|---|---|
| Profile | 1001 | user01 | Medium |
| Order | ORD-101 | user01 | Medium |
| Ticket | TKT-201 | user01 | Medium |
| Report | RPT-001 | Manager | High |
Phase 09 β Understand Object Ownership
Section titled βPhase 09 β Understand Object OwnershipβA typical authorization rule might be:
USER βMAY ACCESS βOBJECTS OWNED BY USERFor example:
user01 βProfile 1001but not:
user01 XProfile 1002Phase 10 β Test Horizontal Authorization
Section titled βPhase 10 β Test Horizontal AuthorizationβSuppose the legitimate request is:
GET /api/profile/1001where:
1001 = user01In your isolated lab, test whether changing the object identifier to another authorized synthetic test user is rejected.
For example:
GET /api/profile/1002Expected result:
403 Forbiddenor another appropriate access-denied response.
If the application returns user02βs protected information instead, you may have identified a horizontal authorization flaw.
Phase 11 β Document the Expected Boundary
Section titled βPhase 11 β Document the Expected BoundaryβBefore changing identifiers, record:
Current User:user01
Current Object:1001
Requested Object:1002
Object Owner:user02
Expected:Denied
Observed:?This makes the assessment reproducible.
Phase 12 β Test Read Authorization
Section titled βPhase 12 β Test Read AuthorizationβAssess whether the current user can read another synthetic userβs:
Profile
Order
Ticket
Document
RecordUse only accounts and objects created for the lab.
Do not collect unnecessary data.
Phase 13 β Test Write Authorization
Section titled βPhase 13 β Test Write AuthorizationβA read restriction and write restriction may differ.
Conceptually:
CAN I READ IT?and:
CAN I MODIFY IT?must be tested separately.
Use harmless synthetic fields when validating modifications.
Phase 14 β Safe Modification Validation
Section titled βPhase 14 β Safe Modification ValidationβIf testing an object-update endpoint, modify only a designated lab field such as:
training_noteor:
display_nameAvoid changing:
Passwords
Email Ownership
Payment Information
Security Settings
Real Business DataPhase 15 β Horizontal Finding Example
Section titled βPhase 15 β Horizontal Finding ExampleβFinding ID:WEB-PE-001
Title:Missing Object-Level Authorization onUser Profile Endpoint
Starting Identity:user01
Affected Endpoint:GET /api/profile/{id}
Observation:The endpoint accepts another syntheticuser identifier and returns protectedprofile information without validatingownership.
Impact:An authenticated user could accessrecords belonging to other users.
Category:Horizontal Privilege Escalation
Recommendation:Perform server-side ownership andauthorization checks for every requestedobject.Phase 16 β Test Vertical Authorization
Section titled βPhase 16 β Test Vertical AuthorizationβNow evaluate higher-privileged application functionality.
As:
user01you should not normally access:
/admin
/admin/users
/admin/settingsStart with direct navigation inside the lab.
Expected:
403or:
Redirect to an access-denied pagePhase 17 β Hidden Menu Is Not Authorization
Section titled βPhase 17 β Hidden Menu Is Not AuthorizationβSuppose the standard user UI does not show:
Adminbut direct navigation to:
/adminworks.
That means:
UI HIDINGβ SERVER-SIDE AUTHORIZATIONA secure design requires:
REQUEST βSERVER βCHECK ROLE / PERMISSION βALLOW OR DENYPhase 18 β Build a Function Authorization Matrix
Section titled βPhase 18 β Build a Function Authorization Matrixβ| Endpoint | User Expected | Manager Expected | Admin Expected | Observed |
|---|---|---|---|---|
/profile |
Allow | Allow | Allow | |
/team |
Deny | Allow | Allow | |
/admin/users |
Deny | Deny | Allow | |
/admin/settings |
Deny | Deny | Allow |
Fill in observed behavior during testing.
Phase 19 β Test Administrative APIs
Section titled βPhase 19 β Test Administrative APIsβA protected page may call an API.
For example:
GET /admin/usersmay internally call:
GET /api/admin/usersTest authorization at both layers.
Secure architecture requires:
BROWSER PAGE βAPI βSERVER AUTHORIZATIONThe API must not trust the frontend.
Phase 20 β Compare Roles
Section titled βPhase 20 β Compare RolesβCapture the same legitimate function using:
user01
manager01
admin01Compare:
Endpoint
Method
Parameters
Headers
Response
Role RequirementThis often reveals where the application expects authorization to occur.
Phase 21 β Do Not Trust Client-Side Role Values
Section titled βPhase 21 β Do Not Trust Client-Side Role ValuesβSuppose the browser contains:
role=USERor JavaScript displays:
isAdmin = falseDo not assume modifying a client value should grant privileges.
A secure application should use trusted server-side authorization.
The key question is:
DOES THE SERVERTRUST CLIENT-CONTROLLEDAUTHORIZATION DATA?Phase 22 β Review Cookies
Section titled βPhase 22 β Review CookiesβDocument cookie properties:
Name
Purpose
Secure
HttpOnly
SameSite
Session IdentifierDo not expose complete session tokens in reports.
Redact them:
session=ABCD********XYZPhase 23 β Review Session Context
Section titled βPhase 23 β Review Session ContextβDetermine whether the session maps server-side to:
Identity
Role
Organization
Tenant
PermissionsConceptually:
SESSION TOKEN βSERVER SESSION βUSER βROLEPhase 24 β Role Changes Should Be Server Controlled
Section titled βPhase 24 β Role Changes Should Be Server ControlledβA secure application should not authorize solely from arbitrary request fields such as:
role=adminAuthorization decisions should be based on trusted server-side identity and permission data.
Phase 25 β Test Function-Level Authorization
Section titled βPhase 25 β Test Function-Level AuthorizationβIdentify actions such as:
Create User
Delete User
Approve Request
Generate Report
Change Configuration
Unlock AccountTest whether standard users can directly call the corresponding lab endpoint.
Phase 26 β Safe Function Validation
Section titled βPhase 26 β Safe Function ValidationβDo not validate privileged functions by deleting or damaging data.
Prefer harmless operations where possible.
For example:
Request denied?can often be confirmed without completing the action.
If a state change is required, use designated synthetic records and restore them afterward.
Phase 27 β Test HTTP Methods
Section titled βPhase 27 β Test HTTP MethodsβAn application may secure:
GETbut incorrectly handle:
POST
PUT
PATCH
DELETEFor each important authorized lab endpoint, identify which methods are intended.
Example:
GET /api/users/1001versus:
PATCH /api/users/1001Read and modify permissions should be checked independently.
Phase 28 β Create a Method Matrix
Section titled βPhase 28 β Create a Method Matrixβ| Endpoint | GET | POST | PUT/PATCH | DELETE |
|---|---|---|---|---|
/api/profile/1001 |
User | β | Owner | β |
/api/users/1002 |
Admin | Admin | Admin | Admin |
/api/orders/101 |
Owner | β | Owner | β |
Then test whether the application actually follows this design.
Phase 29 β Review Parameter-Based Authorization
Section titled βPhase 29 β Review Parameter-Based AuthorizationβApplications may accept:
userId
ownerId
accountId
teamId
tenantId
roleTreat these as:
UNTRUSTED INPUTServer authorization should independently determine whether the current identity can act on the referenced object.
Phase 30 β Test Ownership Validation
Section titled βPhase 30 β Test Ownership ValidationβSuppose:
POST /api/orders/updatecontains:
{ "orderId": "ORD-101", "status": "saved"}In the training environment, determine whether the server validates that:
Current Useris authorized to modify:
ORD-101before processing the request.
Phase 31 β Avoid Blind Parameter Fuzzing
Section titled βPhase 31 β Avoid Blind Parameter FuzzingβDo not randomly change every parameter.
Use an authorization hypothesis:
I BELIEVE ORDER IDIS THE SECURITY BOUNDARY.Then test only that assumption.
Phase 32 β Review Multi-Tenant Authorization
Section titled βPhase 32 β Review Multi-Tenant AuthorizationβSome applications contain:
Tenant A
Tenant BA user in one organization should not access another organizationβs resources.
Conceptually:
USER βTENANT A βOBJECT Amust not become:
USER βTENANT B βOBJECT Bwithout explicit permission.
Phase 33 β Build Tenant Test Cases
Section titled βPhase 33 β Build Tenant Test CasesβUse synthetic tenant data.
Record:
Current User
Current Tenant
Requested Object
Object Tenant
Expected Result
Observed ResultPhase 34 β Review Team and Department Boundaries
Section titled βPhase 34 β Review Team and Department BoundariesβApplications may authorize by:
Team
Department
Project
Region
Business UnitDo not assume the only boundary is user ownership.
Phase 35 β Review Workflow Authorization
Section titled βPhase 35 β Review Workflow AuthorizationβBusiness workflows may look like:
EMPLOYEE βSUBMIT REQUEST βMANAGER βAPPROVE REQUEST βFINANCE βPROCESSAsk:
Can a User Skip a Stage?
Can the Submitter ApproveTheir Own Request?
Can a Standard User Invokea Manager Action Directly?Phase 36 β Workflow Privilege Escalation
Section titled βPhase 36 β Workflow Privilege EscalationβExample:
Standard User βSubmit Expense βDirectly Call Approval Function βExpense ApprovedThis is an authorization failure even if no technical exploit is involved.
Phase 37 β Test Workflow State
Section titled βPhase 37 β Test Workflow StateβUse designated synthetic requests.
Document:
Request ID
Current State
Allowed Actor
Allowed Transition
Attempted Actor
Observed ResultPhase 38 β State Transition Matrix
Section titled βPhase 38 β State Transition Matrixβ| Current State | Action | Allowed Role | Resulting State |
|---|---|---|---|
| Draft | Submit | User | Pending |
| Pending | Approve | Manager | Approved |
| Pending | Reject | Manager | Rejected |
| Approved | Process | Finance | Processed |
The server should enforce this model.
Phase 39 β Review Administrative Object Management
Section titled βPhase 39 β Review Administrative Object ManagementβAdministrator functions may include:
User Management
Role Management
Permission Assignment
Configuration
Audit Access
Application SettingsThese deserve the strongest authorization controls.
Phase 40 β Role Assignment Testing
Section titled βPhase 40 β Role Assignment TestingβA standard user should not be able to:
Assign Admin Role
Change Own Role
Add Self to Privileged GroupTest this only using synthetic accounts and designated lab endpoints.
Expected:
DENIEDPhase 41 β Never Rely on Disabled Buttons
Section titled βPhase 41 β Never Rely on Disabled ButtonsβA UI might show:
[Approve] Disabledbut the underlying API must still reject an unauthorized request.
The server must enforce:
CAN THIS IDENTITYPERFORM THIS ACTION?Phase 42 β Review Direct Object References
Section titled βPhase 42 β Review Direct Object ReferencesβObject identifiers may be:
Sequential Integer
UUID
Filename
Username
Email
Order NumberA hard-to-guess identifier is not a replacement for authorization.
UUIDβ ACCESS CONTROLPhase 43 β Review Download Functions
Section titled βPhase 43 β Review Download FunctionsβTest synthetic documents.
Example:
GET /download?id=DOC-1001Determine whether changing the identifier to another lab userβs document is denied.
Document only minimal content needed to prove access.
Phase 44 β Review Export Functions
Section titled βPhase 44 β Review Export FunctionsβExports can expose larger datasets.
Examples:
CSV Export
PDF Report
Audit Export
User ExportTest whether lower-privilege users can invoke restricted export functions.
Avoid downloading unnecessarily large datasets.
Phase 45 β Review Search APIs
Section titled βPhase 45 β Review Search APIsβA normal user may have legitimate search access but receive excessive records.
Ask:
Does the API FilterBy User?
Team?
Tenant?
Role?Phase 46 β Review GraphQL or Unified APIs Conceptually
Section titled βPhase 46 β Review GraphQL or Unified APIs ConceptuallyβIf the lab uses a query-based API, authorization must still apply to:
Objects
Fields
Actions
ResolversDo not assume one authenticated API endpoint means all returned data is authorized.
Phase 47 β Review Administrative Metadata
Section titled βPhase 47 β Review Administrative MetadataβEven when sensitive operations are blocked, lower-privileged users should not unnecessarily receive:
Internal Role Lists
Administrative User Details
Security Configuration
Hidden Business DataExcessive metadata may become its own finding.
Phase 48 β Review Error Handling
Section titled βPhase 48 β Review Error HandlingβCompare:
401 Unauthorized
403 Forbidden
404 Not Found
200 OKUnderstand what the application reveals.
Authorization should fail securely without exposing unnecessary sensitive information.
Phase 49 β 401 vs 403
Section titled βPhase 49 β 401 vs 403βA simplified distinction:
401=Authentication Required403=Authenticated butNot AuthorizedApplications may intentionally use different patterns, but authorization should remain consistent.
Phase 50 β Review Server-Side Enforcement
Section titled βPhase 50 β Review Server-Side EnforcementβThe strongest architecture is:
REQUEST βAUTHENTICATE βIDENTIFY USER βLOAD TRUSTED PERMISSIONS βIDENTIFY TARGET RESOURCE βCHECK AUTHORIZATION βPROCESS OR DENYPhase 51 β Avoid Scattered Authorization
Section titled βPhase 51 β Avoid Scattered AuthorizationβWeak architecture often looks like:
Endpoint AChecks Role
Endpoint BChecks Nothing
Endpoint CTrusts UI
Endpoint DChecks Ownership DifferentlyCentralized authorization policies reduce inconsistency.
Phase 52 β Build an Authorization Test Matrix
Section titled βPhase 52 β Build an Authorization Test Matrixβ| Test ID | User | Endpoint | Object | Expected | Observed |
|---|---|---|---|---|---|
| AUTH-01 | user01 | /profile/1001 |
Own | Allow | |
| AUTH-02 | user01 | /profile/1002 |
Other | Deny | |
| AUTH-03 | user01 | /admin/users |
Admin | Deny | |
| AUTH-04 | manager01 | /team |
Team | Allow | |
| AUTH-05 | user01 | /api/approve |
Manager | Deny |
Phase 53 β Build an Authorization Graph
Section titled βPhase 53 β Build an Authorization GraphβExample:
user01 | | Authenticated vStandard Role | | Missing Authorization Check vAdmin API | | Performs vUser ManagementThis is a vertical privilege path.
Phase 54 β Horizontal Privilege Graph
Section titled βPhase 54 β Horizontal Privilege Graphβuser01 | | Change Object ID vProfile 1002 | | Missing Ownership Check vuser02 DataPhase 55 β Workflow Privilege Graph
Section titled βPhase 55 β Workflow Privilege Graphβuser01 | | Own Request vPending Request | | Direct Approval Function vApprovedPhase 56 β Prioritize Findings
Section titled βPhase 56 β Prioritize FindingsβConsider:
Required Authentication
Required Role
Data Sensitivity
Function Sensitivity
Number of Affected Users
Cross-Tenant Impact
Administrative Capability
Business Process ImpactPhase 57 β Controlled Validation
Section titled βPhase 57 β Controlled ValidationβWhen a privilege failure is found:
STOP βCAPTURE ORIGINAL REQUEST βRECORD EXPECTED ACCESS βMAKE MINIMAL CHANGE βREPLAY IN LAB βOBSERVE RESPONSE βCAPTURE EVIDENCE βRESTORE TEST DATAPhase 58 β Minimum Proof Principle
Section titled βPhase 58 β Minimum Proof PrincipleβYou usually do not need to:
Create Administrator Accounts
Delete Users
Download Entire Databases
Change Passwords
Alter Production-Like Configurationif a less invasive test proves the authorization problem.
Phase 59 β Finding WEB-PE-001
Section titled βPhase 59 β Finding WEB-PE-001βFinding ID:WEB-PE-001
Title:Horizontal Authorization Failure onProfile Endpoint
Starting Role:Standard User
Affected Endpoint:GET /api/profile/{id}
Observation:An authenticated standard user can requestanother synthetic user's profile bychanging the object identifier.
Expected:Access denied.
Observed:The application returns the protectedrecord.
Impact:Authenticated users may gain unauthorizedaccess to other users' information.
Severity:High
Root Cause:Object ownership is not validatedserver-side.
Recommendation:Perform server-side authorization againstthe authenticated identity for everyrequested object.Phase 60 β Finding WEB-PE-002
Section titled βPhase 60 β Finding WEB-PE-002βFinding ID:WEB-PE-002
Title:Missing Function-Level Authorization onAdministrative Endpoint
Starting Role:Standard User
Affected Endpoint:Administrative API
Observation:The administrative interface is hiddenfrom standard users, but the underlyingserver endpoint does not enforce therequired administrator role.
Impact:A lower-privileged user could accessadministrative application functionality.
Severity:Critical
Root Cause:The application relies on frontendvisibility rather than server-sideauthorization.
Recommendation:Require explicit authorization checks onevery privileged server endpoint.Phase 61 β Finding WEB-PE-003
Section titled βPhase 61 β Finding WEB-PE-003βFinding ID:WEB-PE-003
Title:Unauthorized Workflow Approval
Observation:A standard user can invoke a manager-onlyapproval operation against a syntheticrequest.
Impact:Users could bypass the intended businessapproval process.
Severity:High
Root Cause:The server validates workflow state butdoes not validate the actor's role.
Recommendation:Validate both workflow state and theauthenticated user's permission beforeevery transition.Phase 62 β Finding WEB-PE-004
Section titled βPhase 62 β Finding WEB-PE-004βFinding ID:WEB-PE-004
Title:Cross-Tenant Object Access
Observation:A user assigned to Tenant A can requesta synthetic object assigned to Tenant B.
Impact:The weakness could undermine tenant dataisolation.
Severity:Critical
Root Cause:Object lookup is performed by identifierwithout enforcing tenant membership.
Recommendation:Bind every object query to theauthenticated tenant and requiredpermission.Phase 63 β Finding WEB-PE-005
Section titled βPhase 63 β Finding WEB-PE-005βFinding ID:WEB-PE-005
Title:Unauthorized Modification of AnotherUser's Resource
Observation:The application prevents unauthorizedreads in one interface but accepts awrite request against an object owned byanother synthetic user.
Impact:Authenticated users may alter dataoutside their authorized scope.
Recommendation:Apply authorization consistently toread, create, update, and deleteoperations.Phase 64 β Build the Risk Matrix
Section titled βPhase 64 β Build the Risk Matrixβ| Finding | Likelihood | Impact | Severity |
|---|---|---|---|
| Admin function exposure | High | Critical | Critical |
| Cross-tenant access | High | Critical | Critical |
| Unauthorized workflow approval | High | High | High |
| Horizontal profile access | High | High | High |
| Unauthorized object modification | High | High | High |
Adjust according to the actual lab findings.
Phase 65 β Identify Root Causes
Section titled βPhase 65 β Identify Root CausesβCommon causes include:
Missing Server-Side Checks
Client-Side Authorization
Inconsistent Endpoint Controls
Missing Object Ownership Validation
Missing Tenant Validation
Weak Role Design
Workflow Logic Errors
Overly Broad API PermissionsPhase 66 β Remediate Object-Level Authorization
Section titled βPhase 66 β Remediate Object-Level AuthorizationβThe application should perform:
AUTHENTICATED USER βTARGET OBJECT βOWNERSHIP / RELATIONSHIP βREQUESTED ACTION βAUTHORIZATION POLICY βALLOW / DENYPhase 67 β Remediate Function-Level Authorization
Section titled βPhase 67 β Remediate Function-Level AuthorizationβEvery privileged operation should independently require the correct permission.
Do not rely on:
Hidden Menus
Disabled Buttons
JavaScript Checks
Secret URLsPhase 68 β Prefer Permissions Over Hard-Coded Roles
Section titled βPhase 68 β Prefer Permissions Over Hard-Coded RolesβInstead of only:
IF ROLE == ADMINlarger applications may benefit from explicit permissions such as:
USER_READ
USER_MANAGE
REPORT_READ
REQUEST_APPROVE
SYSTEM_CONFIGUREThen assign permissions according to roles.
Phase 69 β Apply Deny by Default
Section titled βPhase 69 β Apply Deny by DefaultβA strong authorization model follows:
NOT EXPLICITLY ALLOWED βDENIEDrather than:
NOT EXPLICITLY DENIED βALLOWEDPhase 70 β Enforce Tenant Boundaries
Section titled βPhase 70 β Enforce Tenant BoundariesβQueries should include the authenticated context.
Conceptually:
Find objectWHERE
Object ID = Requested ID
AND
Tenant = Authenticated Tenant
AND
User Has Required PermissionPhase 71 β Secure Workflow Authorization
Section titled βPhase 71 β Secure Workflow AuthorizationβBefore a state change:
WHO IS THE USER?
WHAT IS THE ROLE?
WHAT IS THE CURRENT STATE?
IS THE ACTION VALID?
IS THIS USER ALLOWEDTO PERFORM IT?All must pass.
Phase 72 β Centralize Authorization
Section titled βPhase 72 β Centralize AuthorizationβPrefer reusable policy enforcement.
Conceptually:
APPLICATION ENDPOINTS βAUTHORIZATION LAYER βPOLICY ENGINE βALLOW / DENYThis reduces inconsistent checks.
Phase 73 β Log Authorization Failures
Section titled βPhase 73 β Log Authorization FailuresβSecurity-relevant telemetry may include:
User
Role
Requested Object
Requested Function
Source
Timestamp
Decision
ReasonAvoid logging secrets or sensitive session tokens.
Phase 74 β Detection Opportunities
Section titled βPhase 74 β Detection OpportunitiesβMonitor patterns such as:
Repeated Access Denials
Sequential Object Requests
Cross-Tenant Requests
Non-Admin Requests to Admin APIs
Unexpected Workflow Actions
High-Volume Object EnumerationPhase 75 β Build Regression Tests
Section titled βPhase 75 β Build Regression TestsβEvery authorization flaw should become a security regression test.
Example:
TEST:
Given:user01
When:GET /api/profile/1002
Then:403 ForbiddenPhase 76 β Test Every Role
Section titled βPhase 76 β Test Every RoleβAuthorization regression testing should include:
Anonymous
Standard User
Manager
Support
Administratoras applicable.
Phase 77 β Test Every Operation
Section titled βPhase 77 β Test Every OperationβFor each resource test:
CREATE
READ
UPDATE
DELETEaccording to business requirements.
This is often called:
CRUD AuthorizationPhase 78 β Test Positive and Negative Cases
Section titled βPhase 78 β Test Positive and Negative CasesβPositive:
User accesses own profileβ AllowedNegative:
User accesses another profileβ DeniedBoth are necessary.
Phase 79 β Cleanup
Section titled βPhase 79 β CleanupβAfter completing the lab:
Restore Modified Synthetic Records
Delete Test Objects If Required
Restore Workflow States
Log Out Test Sessions
Remove Temporary Evidence From Target
Secure Captured Requests
Redact Tokens and SecretsPhase 80 β Retest
Section titled βPhase 80 β RetestβAfter remediation:
ORIGINAL AUTHORIZATION PATH βREPLAY SAME REQUEST βVERIFY SERVER CHECK βCONFIRM DENIALExample:
Before:
user01β /api/profile/1002β 200After:
user01β /api/profile/1002β 403Final Report Structure
Section titled βFinal Report StructureβUse:
01 Executive Summary
02 Scope
03 Test Accounts
04 Application Architecture
05 Role Matrix
06 Endpoint Inventory
07 Object Inventory
08 Horizontal Authorization
09 Vertical Authorization
10 API Authorization
11 Workflow Authorization
12 Tenant Isolation
13 Session Context
14 Findings
15 Privilege Paths
16 Risk Ratings
17 Remediation
18 Retesting
19 CleanupExecutive Summary Example
Section titled βExecutive Summary ExampleβThe authorization assessment identifiedweaknesses allowing authenticatedlower-privileged users to accessapplication resources and functionsoutside their intended role.
The most significant risks involvedmissing object-level authorization,inconsistent administrative API controls,and insufficient workflow enforcement.
The primary remediation priority is toimplement centralized server-sideauthorization based on authenticatedidentity, object ownership, tenantmembership, requested action, andexplicit permissions.Authorization Finding Template
Section titled βAuthorization Finding TemplateβFinding ID:
Title:
Application:
Starting User:
Starting Role:
Affected Endpoint:
HTTP Method:
Affected Object:
Expected Authorization:
Observed Authorization:
Description:
Privilege Path:
Evidence:
Security Impact:
Likelihood:
Severity:
Root Cause:
Recommendation:
Retest Procedure:Authorization Test Worksheet
Section titled βAuthorization Test WorksheetβTest ID:
User:
Role:
Tenant:
Endpoint:
Method:
Object:
Object Owner:
Required Permission:
Expected Result:
Observed Result:
Evidence:
Finding ID:Student Deliverables
Section titled βStudent DeliverablesβComplete:
- Scope record
- Test account inventory
- Role matrix
- Endpoint inventory
- Object inventory
- Ownership matrix
- Horizontal authorization testing
- Vertical authorization testing
- Function authorization testing
- HTTP-method authorization testing
- API authorization testing
- Multi-tenant testing
- Workflow authorization testing
- Session-context assessment
- Privilege-path diagrams
- Findings register
- Risk matrix
- Remediation plan
- Regression test plan
- Cleanup confirmation
- Final assessment report
Web Privilege Escalation Checklist
Section titled βWeb Privilege Escalation Checklistβ- Application authorized
- Test accounts documented
- Roles documented
- Synthetic data identified
- Restricted actions documented
Baseline
Section titled βBaselineβ- Standard user experience mapped
- Manager experience mapped
- Admin experience mapped
- Expected role matrix created
Application Mapping
Section titled βApplication Mappingβ- Pages identified
- Endpoints identified
- APIs identified
- Objects identified
- Object ownership identified
- Workflows identified
Horizontal Authorization
Section titled βHorizontal Authorizationβ- Own objects tested
- Other-user objects tested
- Read authorization tested
- Write authorization tested
- Sensitive downloads tested
- Search filtering reviewed
Vertical Authorization
Section titled βVertical Authorizationβ- Manager functions tested
- Admin pages tested
- Admin APIs tested
- Privileged actions tested
- UI-only restrictions identified
- GET authorization reviewed
- POST authorization reviewed
- PUT/PATCH authorization reviewed
- DELETE authorization reviewed
- Object identifiers reviewed
- Server-side enforcement verified
Tenant Boundaries
Section titled βTenant Boundariesβ- Tenant identity documented
- Cross-tenant reads tested
- Cross-tenant modifications tested
- Tenant filtering verified
Workflow
Section titled βWorkflowβ- States mapped
- Allowed transitions mapped
- Actor requirements documented
- Unauthorized transitions tested
- Self-approval scenarios reviewed
Sessions
Section titled βSessionsβ- Cookies reviewed
- Session identity understood
- Roles mapped server-side
- Sensitive tokens redacted
Validation
Section titled βValidationβ- Expected behavior documented
- Minimal request change used
- Synthetic data used
- Evidence captured
- Business impact established
- Cleanup completed
40 Web Application Privilege Escalation Interview Questions
Section titled β40 Web Application Privilege Escalation Interview Questionsβ- What is application privilege escalation?
- What is authentication?
- What is authorization?
- What is horizontal privilege escalation?
- What is vertical privilege escalation?
- What is broken access control?
- What is object-level authorization?
- What is function-level authorization?
- Why is hiding an admin menu insufficient?
- Why must APIs independently enforce authorization?
- What is object ownership?
- Why should object identifiers be treated as untrusted input?
- Does using UUIDs solve authorization problems?
- What is an IDOR-style authorization issue?
- Why should read and write authorization be tested separately?
- What is a role matrix?
- What is a permission model?
- What is RBAC?
- What is ABAC?
- What does deny-by-default mean?
- What is multi-tenant isolation?
- Why must tenant identity be enforced server-side?
- What is workflow authorization?
- What is a state transition?
- Why should the server validate both state and actor?
- Why should client-side role values not be trusted?
- What is a session token?
- Why should session tokens be redacted from reports?
- What is HTTP 401?
- What is HTTP 403?
- Why should different HTTP methods have independent authorization?
- What is CRUD authorization?
- What is a business-logic authorization flaw?
- Why are administrative APIs high risk?
- Why are export endpoints security-sensitive?
- Why are negative authorization tests important?
- What is controlled validation?
- Why should authorization findings become regression tests?
- How should authorization failures be logged?
- How do you confirm an authorization issue has been remediated?
Final Web Application Privilege Escalation Mental Model
Section titled βFinal Web Application Privilege Escalation Mental ModelβRemember:
AUTHENTICATE βIDENTIFY USER βIDENTIFY ROLE βIDENTIFY TENANT βIDENTIFY RESOURCE βIDENTIFY OWNER βIDENTIFY ACTION βCHECK PERMISSION βALLOW / DENYFrom the penetration testerβs perspective:
STANDARD USER βMAP LEGITIMATE ACCESS βBUILD ROLE MATRIX βIDENTIFY OBJECTS βTEST OWNERSHIP BOUNDARIES βTEST ROLE BOUNDARIES βTEST API BOUNDARIES βTEST WORKFLOW BOUNDARIES βTEST TENANT BOUNDARIES βCORRELATE βBUILD PRIVILEGE PATH βCONTROLLED VALIDATION βROOT CAUSE βREMEDIATION βREGRESSION TESTDo not think only:
Can I Open /admin?Think:
Can My Current IdentityCause the Server to PerformAny Action That Should Requirea Different Identity,Role, Ownership Relationship,Tenant, or Permission?The most important lesson is:
Authentication Tells the ApplicationWho the User Is.
Authorization Must DecideWhat That User Can Do.A secure application therefore requires:
EVERY REQUEST βTRUSTED IDENTITY βSERVER-SIDE AUTHORIZATION βRESOURCE + ACTION βALLOW OR DENYWhatβs Next?
Section titled βWhatβs Next?βWhatβs Next?
Section titled βWhatβs Next?ββ‘οΈ You Have Completed the OffSec Labs
Congratulations β you have now completed the practical lab sequence for this learning path.
Your lab progression covered:
Lab 01Active Directory Attacks βLab 02Enterprise Pentesting βLab 03Linux Privilege Escalation βLab 04Windows Privilege Escalation βLab 05Web Application Privilege EscalationThese labs were designed to connect the major skills developed throughout your offensive security journey.
You have moved through:
ACTIVE DIRECTORY +ENTERPRISE NETWORKS +LINUX +WINDOWS +WEB APPLICATIONS βPRACTICAL PENETRATIONTESTING METHODOLOGYFrom Individual Skills to Attack Paths
Section titled βFrom Individual Skills to Attack PathsβThe most important lesson from these labs is that real enterprise security assessments rarely involve a single isolated vulnerability.
A realistic security problem may look like:
INITIAL ACCESS βLOW-PRIVILEGE IDENTITY βAPPLICATION WEAKNESS βSERVER ACCESS βPRIVILEGE ESCALATION βIDENTITY RELATIONSHIP βACTIVE DIRECTORY βENTERPRISE ATTACK PATH βCRITICAL BUSINESS ASSETYour responsibility as a penetration tester is not simply to demonstrate that individual weaknesses exist.
You should understand:
WHERE THE ATTACK PATH STARTS
WHICH SECURITY BOUNDARIES FAIL
HOW DIFFERENT WEAKNESSES CONNECT
WHICH BUSINESS ASSETS ARE EXPOSED
WHICH CONTROLS SHOULD BREAK THE PATHSkills You Should Now Be Able to Apply
Section titled βSkills You Should Now Be Able to ApplyβAfter completing the lab sequence, you should be comfortable with the methodology behind:
Scoping βReconnaissance βEnumeration βAttack-Surface Mapping βIdentity Analysis βAuthorization Analysis βPrivilege Escalation βActive Directory Assessment βAttack-Path Analysis βControlled Validation βEvidence Collection βRisk Assessment βRemediation βRetestingBuild Your Pentesting Portfolio
Section titled βBuild Your Pentesting PortfolioβDo not treat the completed labs as exercises that you now forget.
Turn them into professional portfolio material.
Create:
01 β Active Directory Security Assessment
02 β Enterprise Penetration Test
03 β Linux Privilege Escalation Assessment
04 β Windows Privilege Escalation Assessment
05 β Web Application Authorization AssessmentFor each project retain sanitized versions of:
Architecture Diagram
Scope
Methodology
Asset Inventory
Attack-Path Diagram
Findings
Risk Matrix
Evidence
Remediation Recommendations
Retest Results
Executive SummaryNever include real credentials, customer information, sensitive screenshots, proprietary data, or material from assessments you are not authorized to publish.
Your Professional Pentesting Workflow
Section titled βYour Professional Pentesting WorkflowβTake this mental model with you:
AUTHORIZE βUNDERSTAND βENUMERATE βMAP βANALYZE βFORM HYPOTHESIS βVALIDATE SAFELY βCONNECT FINDINGS βBUILD ATTACK PATH βMEASURE IMPACT βCOLLECT EVIDENCE βREPORT βREMEDIATE βRETESTThe goal is not:
RUN MORE TOOLSThe goal is:
UNDERSTAND THE ENVIRONMENT βUNDERSTAND THE TRUST βUNDERSTAND THE WEAKNESS βUNDERSTAND THE IMPACTFinal Career Connection
Section titled βFinal Career ConnectionβThe skills developed throughout this path directly support roles such as:
Penetration Tester
Ethical Hacker
Security Consultant
Red Team Operator
Web Application Penetration Tester
Active Directory Security Specialist
Vulnerability Researcher
Product Security Engineer
Offensive Security EngineerContinue strengthening the fundamentals while building depth in the area that matches your target role.
Final Readiness Check
Section titled βFinal Readiness CheckβBefore considering this path complete, make sure you can confidently answer:
Can I scope an authorized assessment?
Can I map an unfamiliar environment?
Can I enumerate without blindly relying on tools?
Can I identify important security boundaries?
Can I analyze identities and permissions?
Can I identify Linux privilege relationships?
Can I identify Windows privilege relationships?
Can I assess Active Directory relationships?
Can I assess web authorization boundaries?
Can I connect individual findings into attack paths?
Can I validate findings without unnecessary impact?
Can I collect useful evidence?
Can I explain business impact?
Can I recommend practical remediation?
Can I retest and prove the attack path is broken?If the answer is yes, you have moved beyond simply learning individual offensive-security techniques.
You are beginning to think like a professional penetration tester.
Final Mental Model
Section titled βFinal Mental ModelβRemember this throughout your career:
TOOLS βTECHNIQUES βMETHODOLOGY βATTACK PATHS βBUSINESS IMPACT βREMEDIATIONTools will change.
Operating systems will change.
Applications will change.
Cloud platforms will change.
Security products will change.
But the fundamental questions remain:
WHAT DO I HAVE?
WHAT CAN I REACH?
WHAT DO I CONTROL?
WHAT TRUSTS ME?
WHAT CAN I INFLUENCE?
WHERE DOES THAT PATH LEAD?
HOW SHOULD THE ORGANIZATIONBREAK THAT PATH?That mindset is more valuable than memorizing any single command or exploitation technique.
Path Complete
Section titled βPath CompleteβOFFSEC CERTIFICATION ROADMAP βOSCP βOSWA βOSWE βOSEP βOSED βOSEE βGOHACKERSCLOUD LABS βACTIVE DIRECTORY βENTERPRISE PENTESTING βLINUX PRIVILEGE ESCALATION βWINDOWS PRIVILEGE ESCALATION βWEB APPLICATION PRIVILEGE ESCALATION βPRACTICAL OFFENSIVE SECURITYCAREER READINESSYou have completed this learning path.
The next step is not another lab.
The next step is to repeat, document, refine, and apply these skills across new authorized environments until the methodology becomes second nature.