cors-auditor
Audit a site's Cross-Origin Resource Sharing (CORS) configuration for misconfigurations — wildcard origin with credentials, reflected arbitrary Origin, the…
Red-team an LLM application against prompt injection and jailbreaks using a curated, categorized payload library and canary-based detection, then produce a resilience score. Use when the user asks to "test my chatbot for prompt injection", "check if my AI app is jailbreakable",
$ npx -y skills add NovaCode37/claude-security-skills --skill prompt-injection-tester --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/prompt-injection-testerContext preview
The summary Claude sees to decide when to auto-load this skill.
Red-team an LLM application against prompt injection and jailbreaks using a curated, categorized payload library and canary-based detection, then produce a resilience score. Use when the user asks to "test my chatbot for prompt injection", "check if my AI app is jailbreakable",
name: prompt-injection-tester description: >- Red-team an LLM application against prompt injection and jailbreaks using a curated, categorized payload library and canary-based detection, then produce a resilience score. Use when the user asks to "test my chatbot for prompt injection", "check if my AI app is jailbreakable", "red-team my LLM", "evaluate prompt-injection defenses", or audit a system prompt's guardrails. license: MIT
A defensive red-team harness for evaluating the prompt-injection resistance of **LLM applications you own or are authorized to test**. It ships a library of well-documented public attack techniques and a canary-based detection engine that decides whether each attack succeeded — then scores overall resilience.
> ⚠️ Use only against systems you own or have permission to test. The payloads > are public hardening techniques, intended to *strengthen* guardrails.
`instruction-override` · `system-prompt-leak` · `role-play` (DAN-style) · `delimiter-escape` · `encoding` (base64/leetspeak) · `data-exfiltration` (indirect injection) · `refusal-suppression`.
1. A unique **canary** secret is embedded into a guarded system prompt. 2. Each payload is sent as the user turn. 3. The response is scored: it's **vulnerable** if it hits an attack success-marker or leaks the canary; **resisted** if it refuses. 4. You get a **resilience score** (0–100) and a per-category breakdown.
List the payload library (no model calls):
python skills/prompt-injection-tester/attacker.py --list python skills/prompt-injection-tester/attacker.py --list --category role-play
See the harness detect a weak vs. a hardened model:
python skills/prompt-injection-tester/attacker.py --demo # weak model python skills/prompt-injection-tester/attacker.py --demo --hardened # safe model python skills/prompt-injection-tester/attacker.py --demo --json
**Exit codes:** `0` clean (no payload succeeded, or `--list`) · `1` at least one payload succeeded · `2` usage error.
Wrap the user's backend in a `model(system_prompt, user_prompt) -> str` callable and run the suite. Example skeleton the user can adapt:
import sys
sys.path.insert(0, "skills/prompt-injection-tester")
import attacker
def model(system_prompt, user_prompt):
# call the user's real API/app here and return the text response
return my_llm_app(system=system_prompt, user=user_prompt)
results = attacker.run_suite(model)
print(attacker.summarize(results))Then: 1. Report the **resilience score** and list every `failed_payload`. 2. For each failure, show the technique and recommend a mitigation — e.g. stronger system-prompt instructions, input/output canary filtering, privilege separation for tool calls, or a dedicated injection classifier. 3. Re-run after fixes to confirm the regression is closed.
If you already captured a model response, score it without any network call:
import attacker payload = attacker.PAYLOADS[0] verdict = attacker.score_response(payload, response_text, canary="CANARY-abc") print(verdict.vulnerable, verdict.reason)
Marker/canary detection is a heuristic: a refusal-shaped response that still complies, or a creative leak, may need human review (`score_response` flags ambiguous cases as "review manually"). Treat the score as a guardrail signal, not a guarantee.
Security skills for Claude Code. Install them once and ask Claude, in plain language, to scan a repo for leaked secrets, review Python code, red-team an LLM for prompt injection, or audit HTTP headers, JWTs, Dockerfiles, CORS, and dependencies.
Audit a site's Cross-Origin Resource Sharing (CORS) configuration for misconfigurations — wildcard origin with credentials, reflected arbitrary Origin, the…
Audit project dependencies for known-vulnerable versions and risky pinning. Parses requirements.txt and package.json, matches a bundled offline advisory DB,…
Scan a Dockerfile for insecure build patterns — running as root, unpinned or :latest base images, ADD from remote URLs, piping curl/wget into a shell,…
Audit a website's HTTP security headers and cookie flags — CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP,…
Decode and security-audit a JSON Web Token — flag alg=none, missing/excessive expiry, symmetric-alg confusion risk, missing claims — and attempt an offline…
Static security analysis for Python source via AST walking — finds command injection, insecure deserialization, eval/exec, weak crypto, SQL injection, disabled…