agentleFS
mguttmannmguttmann/code-audit-suite/skills/dast-runtime/SKILL.md

dast-runtime

Skill0 starsChanged 5 months agoMITView on GitHub

This skill should be used when the user asks to "run a DAST scan", "scan the running app", "run OWASP ZAP", "run Nuclei", "penetration test", "Web-App-Security prüfen", "Runtime-Security", "API security scan", "check security headers/injection on a live URL", or wants to test a running application for exploitable vulnerabilities. Runs OWASP ZAP + Nuclei in Docker against a URL, processed directly in Claude Code.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Only scan applications you own or are explicitly authorized to test.

    line 28

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

DAST Runtime

Purpose

Dynamic, runtime security testing — the axis SonarQube structurally cannot reach, because it never executes the application. This skill attacks a running app and confirms what is actually exploitable:

  • OWASP ZAP — spiders and attacks the live app: injection (SQLi/XSS), broken auth/session, missing security headers (CSP/HSTS), CORS misconfig, SSRF reachable through the deployment.
  • Nuclei — fast template-based detection of known CVEs and misconfigurations at the deployment (vulnerable framework/proxy versions, exposed admin panels, leaked .env, default credentials). New templates often land hours after a disclosure.

They are complementary on the same axis (ZAP = deep crawl/attack, Nuclei = broad known-issue templating), so both run.

Authorization

Only scan applications you own or are explicitly authorized to test. ZAP's full scan actively attacks the target.

Core Workflow (drive to zero)

  1. Start the app locally (e.g. on http://localhost:3000).
  2. Scan:
    ~/.claude/skills/dast-runtime/scripts/scan.sh http://localhost:3000
    • Passive + spider by default (safe, zap-baseline.py).
    • ZAP_FULL=1 scan.sh <url> runs the active attack (zap-full-scan.py).
    • For an API, pass the OpenAPI spec URL as the 2nd argument → scan.sh <base-url> http://localhost:3000/openapi.json (uses zap-api-scan.py).
  3. Fix each alert at the source: add the missing header, parameterize the query, fix the auth check, upgrade the vulnerable component Nuclei flags.
  4. Re-run until RESULT: PASS.

Notes

  • localhost/127.0.0.1 in the URL are rewritten to host.docker.internal automatically so the scanner containers reach the host-published app.
  • Nuclei templates are cached in the nuclei-templates Docker volume; they update on first use.
  • ZAP exit codes: 0 = clean, 1 = fail, 2 = warnings — both non-zero outcomes drive the loop.

Resources

  • scripts/scan.sh — runs ZAP (baseline/full/api) + Nuclei against a URL, host-network aware, exit 1 on findings. Env: ZAP_FULL.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.