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.