antoninolorenzo/ai-ops/web-sql-injection
Claude Code and agent skill by antoninolorenzo/ai-ops
- community
Checking that the SKILL.md file is still in the repository.
Detect and exploit SQL injection vulnerabilities in web applications. Load when user-controlled input is incorporated into database queries, or when authentication bypass, data extraction, or error-based information disclosure is the objective.
Install
npx vskill@latest install antoninolorenzo/ai-ops/web-sql-injectionSKILL.md
Confirm Injection Point
When you have identified a potential injection point, start by manually testing it to decide whether to proceed.
To perform manual testing, write a probe script and execute it; if you have a file write tool use it to write the file.
Note: avoid loading full HTML responses in context, filter before output reaches you.
Here's an example of how you would write a probe script to test whether a query parameter id is an injection point:
What to look for:
| Response | Meaning | |
|---|---|---|
| SQL error message in output | Error-based injection confirmed | |
| Different size between AND 1=1 and AND 1=2 | Blind boolean confirmed | |
Delayed response on AND SLEEP(5) | Time-based blind confirmed | |
| Identical responses to all probes | Likely not injectable here |
If no response difference is observed across GET params, POST body, cookies, and headers, move on. Do not retry the same parameter.
If you haven't identified the database backend yet, attempt doing it now:
If you have access to a whiteboard, record the confirmed injection point before proceeding:
sqlmap
When executing sqlmap always add -v 0 --batch parameters, this suppresses per-request logging and avoids confirmation prompts; those parameters are required to avoid bloating the context and to ensure proper execution of commands.
Invocation by injection point type
Useful Flags
| Flag | Use | |
|---|---|---|
--dbms=mysql | Skip DBMS detection when already known | |
--technique=BEUST | Restrict to specific techniques (B=boolean, E=error, U=union, S=stacked, T=time) | |
--level=5 --risk=3 | Maximum coverage — use when lower levels find nothing | |
--threads=5 | Parallel requests — speeds up blind injection | |
--string="welcome" | Boolean anchor — string present in true-condition response only | |
--second-url="http://$TARGET/profile" | Second-order: inject at main URL, trigger at second-url | |
--auth-type=Basic --auth-cred="user:pass" | Authenticated endpoints |
Data extraction sequence
After each step, read extracted values before deciding what to dump next.
If you have access to a whiteboard, record extracted credentials or flag values immediately:
Authentication bypass
A redirect (302) or significantly larger response indicates bypass. If manual fails:
Filter Bypass
Try --level=5 --risk=3 first. If still blocked, apply tamper scripts.
Built-in tampers
| Tamper | What it does | Bypasses | |
|---|---|---|---|
space2comment | Replaces spaces with /**/ | Space / whitespace filters | |
space2dash | Replaces spaces with --x\n | Strict space filters | |
randomcase | Randomizes keyword casing (SeLeCt) | Case-sensitive keyword blocklists | |
between | Replaces = and > with BETWEEN equivalents | Comparison operator filters | |
charencode | URL-encodes every character in payload | Raw character sanitization | |
htmlencode | HTML-encodes characters (' → ') | HTML-context injection points |
Combine with comma separation: --tamper=space2comment,randomcase
Writing a custom tamper
If built-in tampers do not bypass the filter and you have identified the specific encoding or transformation the application expects, write a custom tamper.
Tamper structure:
Reference by filename without extension: --tamper=/path/to/mytamper
When combining multiple tampers, priority controls processing order: LOWEST < LOWER < LOW < NORMAL < HIGH < HIGHER < HIGHEST.
Stop Condition
If sqlmap with --level=5 --risk=3 across all identified parameters returns nothing, the endpoint is not vulnerable via standard techniques. Do not retry.
If you have a whiteboard tool, record the dead end:
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingai_ops/core/tools/load_skill/bundled/web-sql-injection/SKILL.md
Popularity
- Repository stars
- 168
- Repository forks
- 26
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/antoninolorenzo/ai-ops/web-sql-injection)