idors-discovery-tool

Detect IDOR vulnerabilities in REST and GraphQL API endpoints.

Updated Apr 12, 2026
One-click install
npx skills add https://github.com/KILWA73/MiniSoc --skill idors-discovery-tool
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: idors-discovery-tool
Source: https://github.com/KILWA73/MiniSoc/tree/main/.agents/skills/idors-discovery-tool
Command: npx skills add https://github.com/KILWA73/MiniSoc --skill idors-discovery-tool

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Checking resource-access logic to prevent unauthorized data access via URL manipulation. Trigger when the user asks "check my API auth", "can someone else see this order?", or "find IDOR vulnerabilities".

Core Features & Use Cases

  • Identify Direct References: Look for endpoints accepting direct database IDs (e.g., /api/orders/{id}) to fetch user-specific data.
  • Authorization Context: Verify if the controller/service actually checks if the currently authenticated user owns the requested resource before returning it.
  • Abstraction Suggestion: Recommend using indirect references (e.g., non-guessable UUIDs) or scoping queries directly to the user (e.g., Auth::user()->orders()->findOrFail($id)).
  • Output Format: Provide the remediated controller code demonstrating strict ownership checks.

Quick Start

Use IDOR discovery prompts to scan API endpoints and implement strict ownership checks.

Frequently Asked Questions about idors-discovery-tool

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

FAQPage Schema
How do I find IDOR vulnerabilities in my API endpoints?

To find IDOR vulnerabilities in your API, scan REST or GraphQL endpoints accepting direct database IDs to verify if ownership checks are enforced before returning user-specific data.

What is an insecure direct object reference in web applications?

An insecure direct object reference occurs when web application endpoints use direct database IDs to fetch data without verifying if the authenticated user owns the requested resource, allowing unauthorized access via URL manipulation.

How do I prevent unauthorized users from accessing other users' orders via URL manipulation?

Prevent unauthorized URL manipulation access by enforcing authorization checks in your controller, scoping database queries to the authenticated user, and using non-guessable indirect references like UUIDs.

Does this IDOR detection approach work with both REST and GraphQL services?

Yes, IDOR detection applies to API endpoints returning user-specific data and admin resources across both REST and GraphQL services during code reviews or security testing.

What is the best way to fix IDOR vulnerabilities in controller code?

The best way to fix IDOR vulnerabilities is to implement strict access control by scoping queries to the authenticated user and outputting remediated controller code demonstrating ownership verification.

When should I use indirect references instead of direct database IDs?

Use indirect references like non-guessable UUIDs when endpoints accept direct database IDs to fetch user-specific data, preventing attackers from easily guessing or enumerating resource identifiers.