skills/sqli/SKILL.md
Use when testing SQL injection, SQLi, database query injection, parameter tampering against SQL-backed endpoints, error-based injection, boolean/time-based injection, or stacked query behavior.
npx skillsauth add ghostonbutterbread/bug-bounty-harness sqliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Test for SQL Injection vulnerabilities.
Caution: Non-destructive tests only. Do not extract data.
Read shared state in this order before testing:
notes/summary.mdnotes/observations.mdchecklist.md (SQLi items only)todo.md (SQLi items only)Also load:
general-security-testing-policylive-testing-policyinjection-testing-policyNo visible error or response delta from the first SQLi probe is not a stop reason by itself. Classify the likely query context and control first, then run paired error, boolean, timing, or result-shaping probes as allowed.
There is no dedicated agents/sqli_hunter.py in this repo. Treat your browser/proxy request replay workflow as the primary execution surface and use agents/payload_mutator.py to generate context-aware SQLi variants after you have classified the sink.
python agents/payload_mutator.py "' OR 1=1--" --type sqli --count 12
$HARNESS_ROOT/prompts/sqli-playbook.md$HARNESS_ROOT/prompts/sqli-payloads.md$HARNESS_SHARED_BASE/{program}/agent_shared/$HARNESS_SHARED_BASE/{program}/agent_shared/findings/sqli/findings.md$HARNESS_SHARED_BASE/{program}/agent_shared/findings/sqli/| Mode | Use When | What It Confirms |
|------|----------|------------------|
| error | Input causes syntax changes or stack traces | Whether the backend leaks parser or database fingerprints |
| boolean | Response changes without explicit errors | Whether the query logic is injectable without noisy output |
| time | Output is blind but the request timing is observable | Whether a delay primitive is reachable safely |
| union | The sink appears to return query results inline | Whether result-shaping and column control are possible without extraction |
Use the mutator only after you know which lane you are in.
python agents/payload_mutator.py "' OR 1=1--" --type sqli --count 12
agents/payload_mutator.py| Option | Description |
|--------|-------------|
| payload | Seed payload to mutate |
| --type | One of xss, sqli, or generic |
| --count | Number of variants to emit |
| --all-encodings | Include heavier encoding and obfuscation variants |
prompts/sqli-playbook.md.prompts/sqli-payloads.md only after you have chosen the correct lane.agent_shared/findings/sqli/findings.md.checklist.md, todo.md, and relevant notes.documentation
Use when attacker-controlled input is saved and rendered later in a profile, comment, title, notification, admin view, export, email, feed, upload metadata, or other stored render surface.
content-media
Use when attacker-controlled input appears in the immediate HTTP response or browser-rendered page and needs reflected XSS context classification, payload selection, mutation, and browser verification.
data-ai
Use when inspecting proxy traffic from PwnFox-profiled browser sessions, filtering Caido/Burp/proxy history by X-PwnFox-Color, or interpreting user phrases like 'Red session' as a distinct browser/auth/profile lane.
tools
# LFI — Local File Inclusion Bypass ## What It Does Tests LFI bypass techniques: path traversal, null bytes, wrappers, log poisoning. Load `general-security-testing-policy`, `live-testing-policy`, and `injection-testing-policy` before live testing. For file/path sinks, absence of an immediate file read or response delta is not a stop reason by itself; use the policy to reason about path normalization, extension allowlists, wrappers, encoding, parser differences, and stack-specific proof ladder