IDOR (Insecure Direct Object Reference)

Date: 07-02-2026- Platform: TryHackMe- Difficulty: Easy- PT1 Exam Preparation

Overview

IDOR is an access control vulnerability where the application trusts user-controlled identifiers (IDs) to fetch objects (profiles, invoices, tickets) without verifying ownership or authorization on the server side.

High signal: if changing an ID returns another user's data, you likely found an IDOR.

1) What IDOR looks like

Common patterns:

Core check: the server must validate authorization (is this object allowed for this session?) not just authentication.

2) Simple ID swap test

The fastest detection method: change the identifier and observe if the response changes to another user/object.

Example:

/profile?user_id=1305/profile?user_id=1000

3) Encoded IDs (base64)

Some apps encode IDs (commonly base64). Decode → modify → re-encode → resend.

Exam note: encoding is reversible; hashing is not.

4) Hashed IDs (predictable patterns)

Hashed identifiers may be predictable (e.g., md5 of an integer). Always try common cracking databases first.

Example: if the app uses md5, 123202cb962ac59075b964b07152d234b70

5) Unpredictable IDs (two-account technique)

If IDs are random/UUID-like, create 2 accounts and swap IDs between requests.

6) Where to look (not just the URL bar)

Example pattern: /api/v1/customer?id={user_id}

Exam Notes (PT1)