Back to Skills

idor-broken-object-authorization

IDOR and broken object authorization testing playbook. Use when requests expose object identifiers, tenant boundaries, writable fields, or missing object-level authorization checks.

1,279stars175forksUpdated 7/4/2026

Security Assessment

Safe(100/100)
Security Score100/100

About idor-broken-object-authorization

An expert attack playbook for finding IDOR and broken object-level authorization issues during security testing. It clarifies terminology up front: IDOR and BOLA (OWASP API Top 10) both concern accessing objects you should not own, while BFLA (Broken Function Level Authorization) concerns accessing functions or admin endpoints you should not be authorized for. Use it when requests expose object identifiers, tenant boundaries, writable fields, or missing object-level authorization checks.

A recurring theme is that identifiers appear in far more than URL path parameters: query strings, request bodies, JSON fields, headers like X-User-ID and X-Account-ID, cookies, GraphQL arguments, hidden form fields, and WebSocket messages are all candidates for tampering. The core methodology is systematic A-B testing: create UserA and UserB, perform and capture all of UserA actions and object IDs, then replay those requests with UserB session to confirm cross-user read or write. It also catalogs ID patterns and their implications, from sequential integers to UUID v1 versus v4, hashed, encoded, and compound IDs, and distinguishes horizontal from vertical privilege escalation.

Additional vectors include HTTP method escalation (trying POST, PUT, PATCH, or DELETE when GET is blocked), parameter pollution and type confusion, BFLA against admin and bulk endpoints, indirect reference-chain IDOR on sub-resources such as attachments, mass assignment of hidden fields like role, isAdmin, and verified for privilege escalation, and state-machine or business-logic abuse. A closing checklist consolidates the tests (two accounts, mapping ID-bearing calls, all verbs, all ID locations, sub-resources, admin endpoints, and extra body fields) so a tester can work the surface methodically.

FAQ

What is the difference between BOLA and BFLA?

BOLA (equivalent to IDOR) is accessing an object you should not own, while BFLA is accessing a function or admin endpoint you should not be authorized for.

Where should I look for object IDs besides the URL path?

In query strings, request bodies, JSON fields, headers, cookies, GraphQL arguments, hidden form fields, and WebSocket messages.

What testing methodology does it recommend?

A-B testing: create two accounts, capture all of the first user requests and object IDs, then replay them with the second user session to confirm unauthorized access.

How can IDOR escalate into privilege escalation?

Through mass assignment of hidden fields such as role, isAdmin, or verified, vertical access to admin functions, or reading another user data like an admin auth token.

What should I try when GET on a resource is properly blocked?

Test the other HTTP verbs such as POST, PUT, PATCH, and DELETE, since authorization is often implemented per method and edge cases get missed.

Install idor-broken-object-authorization

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill