idor-hunter

Detect object-level authorization failures in REST and GraphQL APIs using two-principal controlled testing.

1|Updated Aug 11, 2026
One-click install
npx skills add https://github.com/Maybe4a6f7365/agentic-bug-bounty-framework --skill idor-hunter-maybe4a6f7365
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: idor-hunter
Source: https://github.com/Maybe4a6f7365/agentic-bug-bounty-framework/tree/main/skills/idor-hunter
Command: npx skills add https://github.com/Maybe4a6f7365/agentic-bug-bounty-framework --skill idor-hunter-maybe4a6f7365

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests.

What problem does it solve? Finding Insecure Direct Object Reference (IDOR/BOLA) vulnerabilities requires proving that one principal can read or mutate another principal's objects, which demands disciplined controlled testing rather than ID guessing or brute-force enumeration. ## Core Features & Use Cases - Two-Principal Test Ledger: Structures testing around controlled accounts A and B with recorded tokens, tenants, object IDs, and parent IDs so every cross-object claim has causal evidence. - Concrete Test Recipes: Provides ready patterns for horizontal reads, nested/renderer ID swaps, GraphQL global-ID swaps, state-changing mutations, and search oracles across REST and GraphQL endpoints. - Negative-Control Stop Conditions: Applies a 12-category taxonomy (expected behavior, out-of-scope asset, duplicate root cause, prohibited test method, and more) so non-reportable findings are never filed. - Use Case: While testing a bug-bounty target, you notice /reports/{id} accepts numeric IDs. Use this Skill to build an A/B account ledger, swap B's report ID into A's authenticated request, verify B's canary data appears, and check the stop conditions before drafting a report. ## Quick Start Ask the agent to test the target's object-reference endpoints for IDOR using two controlled accounts and the idor-hunter recipes.

Frequently Asked Questions about idor-hunter

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test for IDOR vulnerabilities in an API?▼

Create two controlled accounts (A and B), capture A-on-A and B-on-B baseline requests, then replay A's authenticated request with B's object ID. A positive result requires B-specific data in the response or a read-after-write confirmation from B, not just a 200 status.

How to test GraphQL endpoints for BOLA vulnerabilities?▼

Swap one global ID at a time (such as gid://APP/Model/123) in a minimal query while keeping the operation and session unchanged. Also test parent/child consistency pairs, since authorization is often checked on the parent but missed on nested children.

What is the difference between IDOR and access control testing?▼

IDOR testing applies when an attacker-supplied object identifier (numeric ID, UUID, global ID) selects the resource being accessed. When no object identifier is attacker-controlled, a broader access-control testing approach is more appropriate.

When is an IDOR finding not reportable to a bug bounty program?▼

Findings are not reportable when they involve public-by-design objects, existence oracles without data disclosure, out-of-scope assets, duplicate root causes, or proofs requiring prohibited methods like ID brute-forcing or reading real users' data.

Why does a 200 response not prove an IDOR vulnerability?▼

A 200 may return the attacker's own data, an empty envelope, or a generic envelope rather than the victim's object. Proof requires ownership evidence such as B's canary content, owner ID, or a mutation that B can independently observe.