| sqli | Union/Error/Blind/Time-based SQL injection, sqlmap | SQL database, query parameters, login forms, search, filtering | load_skill("/skills/exploit/web/sqli.md") |
| xss | Reflected/stored/DOM XSS, bot exfiltration, CSP bypass | Client-side JS injection, bot/report URL, cookie stealing | load_skill("/skills/exploit/web/xss.md") |
| ssti | Jinja2, Twig, Freemarker, ERB, Razor template injection | Template rendering, {{}} or ${} in output, Flask/Symfony/Java | load_skill("/skills/exploit/web/ssti.md") |
| ssrf | Cloud metadata, internal service access, Gopher smuggling | URL fetch parameter, redirect, internal network access | load_skill("/skills/exploit/web/ssrf.md") |
| xxe | XML entity injection, SOAP/WSDL, blind OOB | XML processing, SOAP endpoints, XML file uploads | load_skill("/skills/exploit/web/xxe.md") |
| lfi | Path traversal, PHP wrappers, log poisoning | File path parameters, ../, include/require, file download | load_skill("/skills/exploit/web/lfi.md") |
| command-injection | OS command injection, blind/OOB, filter bypass | System commands, ping/traceroute, exec, subprocess | load_skill("/skills/exploit/web/command-injection.md") |
| deserialization | Java/PHP/.NET/Python deserialization RCE | Serialized objects, base64 blobs, ViewState, pickle | load_skill("/skills/exploit/web/deserialization.md") |
| idor | Authorization bypass, ID enumeration, privilege escalation | Object references, sequential IDs, UUIDs, access control | load_skill("/skills/exploit/web/idor.md") |
| file-upload | Webshell upload, extension/content-type bypass | File upload forms, unrestricted upload | load_skill("/skills/exploit/web/file-upload.md") |
| graphql | Introspection, SQLi via resolvers, auth bypass | GraphQL API, /graphql endpoint, GQL queries | load_skill("/skills/exploit/web/graphql.md") |
| race-condition | TOCTOU, parallel POST/GET races, session-write-before-verdict, quota/balance/coupon double-spend | bcrypt/Argon2 auth, check-then-act, slow-op widening race window, challenge tag includes race_condition/toctou/concurrent | load_skill("/skills/exploit/web/race-condition.md") |
| smuggling | HTTP request smuggling (HRS) — CL.TE/TE.CL/TE.TE, CL.0, HTTP/2 downgrade (h2.cl, h2.te, CR/LF injection), pipelining, connection-state pinning | Multi-proxy/CDN frontend, differential 4xx/5xx on duplicate or obfuscated TE/CL headers, two Server: strings, h2 frontend with h1 backend, challenge tag includes smuggling_desync/request_smuggling/hrs/desync | load_skill("/skills/exploit/web/smuggling.md") |
| crypto | Padding oracle (Vaudenay), AES-CBC bit-flipping, ECB block substitution, JWT alg confusion, hash-length extension | Base64 cookie/token w/ length %16 or %8, distinct invalid-pad vs auth-fail responses, JWT, repeated 16-byte ciphertext blocks, challenge tag includes crypto/cipher/oracle/captcha | load_skill("/skills/exploit/web/crypto.md") |
| cve | Known CVE exploitation — CMS plugins (WordPress/Joomla), version-specific vulnerabilities, public exploit application | Challenge tag includes cve, version/plugin identified in recon, known vulnerable software, challenge name/description hints at specific CVE | Inline methodology below — no separate sub-skill |