Skip to content
Skillpedia
Security48k · #3265

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-idor/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-idor/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
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-idor

Or 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.md
Technical 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:

  1. Ask the user to state the exact target URL, IP, account, or resource.
  2. Ask the user to confirm written authorization and the permitted scope.
  3. Show the exact command(s) and explain their expected effect.
  4. 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/json on endpoints accepting raw IDs
  • No X-Frame-Options or CORS misconfigs paired with ID params
  • Authorization: Bearer tokens 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_id params
  • Mobile apps (Burp the APK — mobile APIs often skip authorization checks)

Step-by-Step Hunting Methodology

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. Test GraphQL specifically

    • Run introspection: { __schema { queryType { fields { name } } } }

…

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.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#3265
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills