SQLi remains one of the most durable and impactful vulnerability classes. Modern exploitation focuses on parser differentials, ORM/query-builder edges, JSON/XML/CTE/JSONB surfaces, out-of-band exfiltration, and subtle blind channels. Treat every string concatenation into SQL as suspect.
Identify query shape - SELECT/INSERT/UPDATE/DELETE, presence of WHERE/ORDER/GROUP/LIMIT/OFFSET
Determine input influence - User input in identifiers vs values
Confirm injection class - Reflective errors, boolean diffs, timing, or out-of-band callbacks
Choose quietest oracle - Prefer error-based or boolean over noisy time-based
Establish extraction channel - UNION (if visible), error-based, boolean bit extraction, time-based, or OAST/DNS
Pivot to metadata - version, current user, database name
Target high-value tables - auth bypass, role changes, filesystem access if feasible
Validation
Show a reliable oracle (error/boolean/time/OAST) and prove control by toggling predicates
Extract verifiable metadata (version, current user, database name) using the established channel
Retrieve or modify a non-trivial target (table rows, role flag) within legal scope
Provide reproducible requests that differ only in the injected fragment
Where applicable, demonstrate defense-in-depth bypass (WAF on, still exploitable via variant)
False Positives
Generic errors unrelated to SQL parsing or constraints
Static response sizes due to templating rather than predicate truth
Artificial delays from network/CPU unrelated to injected function calls
Parameterized queries with no string concatenation, verified by code review
Impact
Direct data exfiltration and privacy/regulatory exposure
Authentication and authorization bypass via manipulated predicates
Server-side file access or command execution (platform/privilege dependent)
Persistent supply-chain impact via modified data, jobs, or procedures
Pro Tips
Pick the quietest reliable oracle first; avoid noisy long sleeps
Normalize responses (length/ETag/digest) to reduce variance when diffing
Aim for metadata then jump directly to business-critical tables; minimize lateral noise
When UNION fails, switch to error- or blind-based bit extraction; prefer OAST when available
Treat ORMs as thin wrappers: raw fragments often slip through; audit whereRaw/orderByRaw
Use CTEs/derived tables to smuggle expressions when filters block SELECT directly
Exploit JSON/JSONB operators in Postgres and JSON functions in MySQL for side channels
Keep payloads portable; maintain DBMS-specific dictionaries for functions and types
Validate mitigations with negative tests and code review; parameterize operators/lists correctly
10. Document exact query shapes; defenses must match how the query is constructed, not assumptions
Summary
Modern SQLi succeeds where authorization and query construction drift from assumptions. Bind parameters everywhere, avoid dynamic identifiers, and validate at the exact boundary where user input meets SQL.
How to use it
Copy the folder
Take asdfgh1445/strix•sql 注入 from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
Check the name does not clash
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.