hunt-idor
Helps your agent find IDOR vulnerabilities. Useful for ensuring users don't access data they shouldn't.
What it does
This tool helps find security flaws called IDOR (Insecure Direct Object Reference). It looks for ways to access other users' data without permission, like seeing someone else's invoices or private messages.
When to use it
- ✓When testing the security of a website or app.
- ✓When you have permission to look for security flaws.
- ✓To understand how user data is protected.
Example of what to ask your AI
“Hunt for IDOR vulnerabilities on example.com”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool analyzes common patterns in URLs and server responses that indicate where an object ID might be improperly accessed. It suggests how to test these points by substituting IDs to see if other users' data is exposed.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill hunt-idorOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-idor/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.
Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
- Ask the user to state the exact target URL, IP, account, or resource.
- Ask the user to confirm written authorization and the permitted scope.
- Show the exact command(s) and explain their expected effect.
- Wait for explicit confirmation in the current conversation.
Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
Crown Jewel Targets
Why IDOR pays big:
- Direct access to other users' data without authentication bypass — clear, demonstrable impact
- Chains easily with privilege escalation, financial fraud, and account takeover
- Affects virtually every application with user-owned resources
Highest-value asset types (by payout potential):
| Asset Type | Why It Pays |
|---|---|
| Financial documents / billing APIs | PII + financial data exposure (Shopify, Uber, PayPal) |
| Private repositories / source code | IP theft, critical data loss (GitHub) |
| User messages / DMs | Privacy violation at scale (Reddit) |
| Account management endpoints | User addition, deletion, privilege escalation (PayPal, Mozilla) |
| Business/org administration | Cross-tenant escalation, employee PII (Uber) |
| Content moderation/admin actions | Operational sabotage (Reddit mod logs) |
Programs that pay most for IDOR:
- Platforms with multi-tenancy (SaaS, B2B tools)
- Fintech and payment processors
- Social platforms with private content
- Developer tools with org/repo isolation
Attack Surface Signals
URL patterns that scream IDOR:
/api/v1/users/{id}/
/api/v*/orders/{order_id}
/invoices/download?id=
/reports/{uuid}/
/messages/{thread_id}
/admin/orgs/{org_id}/members
/migration/{migration_id}/files
/graphql (query params with IDs)
/api/business/{business_id}/
/vouchers/{voucher_id}/policy
Response header signals:
Content-Type: application/jsonon endpoints accepting raw IDs- No
X-Frame-Optionsor CORS misconfigs paired with ID params Authorization: Bearertokens that are user-scoped but hit org-level resources
JavaScript source patterns:
// Look for hardcoded or interpolated IDs in JS
fetch(`/api/v1/users/${userId}/profile`)
axios.get('/invoices/' + invoiceId)
graphql query { billingDocument(id: $docId) }
// Redux/state stores exposing foreign IDs
state.currentUser.organizationId
Tech stack signals:
- GraphQL endpoints (query-based IDORs are often missed)
- REST APIs with sequential integer IDs (most vulnerable)
- UUIDs that are predictable or leaked in other responses
- Multi-tenant SaaS apps with
org_id,account_id,business_idparams - Mobile apps (Burp the APK — mobile APIs often skip authorization checks)
Step-by-Step Hunting Methodology
Map all object references in the application
- Browse every feature authenticated as User A
- Capture all requests in Burp Suite
- Filter for requests containing:
id=,_id=,uuid=,/v1/{noun}/{id}, query params with numeric/UUID values
Enumerate ID types
- Sequential integers → enumerate ±1, ±100
- UUIDs → check if they appear in other responses or JS files
- Hashed IDs → check if leaked in public endpoints, metadata, or GraphQL introspection
Create two separate accounts (same privilege level)
- User A: resource owner
- User B: attacker account
- Log all IDs belonging to User A while authenticated as User A
Replay User A's resource IDs as User B
- Replace session cookie/token with User B's credentials
- Send identical requests referencing User A's object IDs
- Test ALL HTTP verbs: GET, POST, PUT, PATCH, DELETE on each endpoint
Test cross-tenant/cross-org scenarios
- Create accounts in separate organizations/businesses
- Test if Org B's session can reference Org A's IDs
- Pay special attention to admin/management endpoints
Test GraphQL specifically
- Run introspection:
{ __schema { queryType { fields { name } } } }
- Run introspection:
…
FAQ
What is IDOR?
IDOR stands for 'Insecure Direct Object Reference'. It's a security flaw where a user can access resources (like files, data, or functions) they shouldn't, simply by changing a parameter (usually a number or ID) in a URL or request.
Why is IDOR dangerous?
It can lead to the exposure of sensitive information from other users, such as personal data, financial details, or private messages. It can also allow an attacker to modify or delete other people's data.
Do I need permission to use this tool?
Yes, absolutely. This tool should only be used on systems for which you have explicit, written permission to conduct security testing. Using it without permission is illegal.
Details
Original description by the author
Hunting skill for idor vulnerabilities. Built from 26 public bug bounty reports. Use when hunting idor on any target.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3265
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
django-security
Helps your agent implement security practices in Django applications. It focuses on authentication, authorization, and prevention against common attacks, ensuring more secure code.
affaan-m/ECC
laravel-security
Helps your agent secure Laravel applications against threats. Implements security practices for authentication, authorization, and common attack prevention.
affaan-m/ECC
module-regression
Helps your agent manage changes in large projects. Ensures code changes in one part don't break other parts.
affaan-m/ECC