top of page

Web Hacking for Pentesters: IDOR and Broken Object Access

Sep 11
2 min read

IDOR is the classic 'change the number in the URL' bug, but it also lives in POST bodies, GraphQL IDs, and export jobs. UUIDs spread false confidence—authorization still must bind objects to users.


It's one of the first tests I run after mapping two same-tier accounts.

Web Hacking for Pentesters: IDOR and Broken Object Access

IDOR testing is repetitive by design—swap identifiers methodically and you'll find bugs that random fuzzing never prioritizes.



Patterns beyond URLs


File downloads, invoice PDFs, messaging threads, shared links with weak tokens, and batch APIs returning mixed ownership.


Mobile apps often hide endpoints web proxies still see.



Methodical checks


Swap identifiers between user A and B. Note write vs read vs delete. Check unauthenticated access to 'secret' links.


  • Compare response sizes and ETags

  • Test archived vs active objects

  • Document minimal cross-user proof



Remediation


Server-side ownership checks on every object touch, indirect references for clients, and logging denied access.


Access bugs are high impact—handle proof data carefully.


Never access real customer records outside test accounts.


When IDs are opaque, test references in exports, emails, and notifications—users leak identifiers without knowing.


Small habits compound—what feels like overhead early becomes speed when deadlines hit.


Test file names and UUIDs in webhook callbacks—not just REST paths.



Reference tokens


Opaque tokens and HMAC URLs still need authorization—don't assume unguessable means secure.


Check export and async download endpoints hours later; jobs sometimes skip checks present on live API.



UUID enumeration myths


Bulk export endpoints defeat UUID secrecy—always test download and async job IDs.


Horizontal access between same-role users is still critical even if vertical admin escape fails.


Recommend audit logs on denied object access for high-value resources.




Worth reading next


API Hacking: Broken Object Level Authorization (BOLA)


Business Logic Flaws and Broken Access Control


Bug Bounty: How to Write a Vulnerability Report

Comments


© 2022 by SapiensHack.com (Security)

bottom of page