sqli-hunter

Detect SQL injection in web inputs using boolean, error, and bounded-time differentials.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests.

What problem does it solve? Security researchers need a disciplined, safe method to confirm SQL injection in web applications without dumping data, running destructive payloads, or filing false-positive reports that programs reject. ## Core Features & Use Cases - Multi-surface input mapping: Inventories URL path segments, form/JSON fields, admin filters, and ORM identifier inputs that may shape relational queries. - Safe differential testing: Applies quote/error triads, boolean true/false predicates, and bounded 1-2 second timing probes with controls to prove query control without data extraction. - Negative-control taxonomy: Applies 12 stop-condition categories and a three-way decision split (technically_vulnerable, in_scope, program_reportable) to prevent non-reportable submissions. - Version boundary filtering: Uses OSV/GHSA fixed-version data for sequelize, knex, typeorm, sqlalchemy, django, and hibernate to rule out already-patched ORM attack surface. - Use Case: While testing an authorized bug-bounty target, you notice a numeric path segment like /api/orders/123. Use this Skill to run boolean and timing differentials, confirm query control with controls, and stop before any data extraction. ## Quick Start Use the sqli-hunter skill to test the invite_code parameter on my authorized staging target for SQL injection using safe boolean and timing differentials.

Frequently Asked Questions about sqli-hunter

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

FAQPage Schema
How do I test for SQL injection without extracting data?

Use boolean and bounded-time differentials: send true and false predicates and compare semantic output, or request 1-2 second delays and confirm median latency tracks the requested delay while controls stay stable. Stop once a safe differential proves query control.

How to detect time-based SQL injection safely?

Use short delays of 1 then 2 seconds with payloads like MySQL conditional sleep or PostgreSQL PG_SLEEP, collect at least three samples per case, and include a no-sleep syntactic control. Avoid long sleeps, concurrent probes, or multiplicative delays.

Can ORM queries like Django be vulnerable to SQL injection?

Yes, when user-controlled input reaches identifier positions such as annotation aliases, relation names, or sort fields. A Django report used a quote in a FilteredRelation annotation alias; you must prove untrusted input reaches the identifier, since developer-written constants are not exploitable.

Why is a 500 error from a single quote not proof of SQL injection?

A lone 500, length change, or slow response lacks a true/false or proportional-time oracle and falls under the theoretical_without_oracle stop category. Framework validation errors can produce identical patterns, so confirmation requires a boolean or timing differential.

When should I not report a SQL injection finding?

Do not report when input is rejected by documented validation, parameterization prevents query-shape change, the target runs a patched ORM version, or evidence comes only from automated scanning. Apply the three-way split: technically_vulnerable, in_scope, and program_reportable must each be evaluated separately.