用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ptkvaibhav/clinkz --skill run-dvwa命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
The Clinkz development + validation operating contract — goal/leverage, phantom-honesty discipline, real-validation standard, risk-tiered workflow, and git protocol. Reference it in a task prompt instead of restating any of this.
Load Clinkz v2 development rules of engagement for any phase-implementation or fix task.
Run the full Clinkz pipeline against OWASP Juice Shop (Node/Angular SPA, JWT auth) and report vulnerability coverage across the 14 categories.
基于 SOC 职业分类
正在显示 SKILL.md
| name | run-dvwa |
| description | Run the full Clinkz pipeline against DVWA and report vulnerability coverage across the 14 categories. |
Apply phase-work skill.
ghcr.io/digininja/dvwa image (built via docker/Dockerfile.dvwa), which — unlike the frozen vulnerables/web-dvwa — ships the open_redirect / authbypass / cryptography modules. It needs an external MariaDB (the dvwa-db compose service, auto-started via depends_on) and runs at security=low by default (DEFAULT_SECURITY_LEVEL).clinkz-dvwa entrypoint (docker/dvwa-init.sh) auto-creates the DVWA tables on startup (GET setup.php for a CSRF token → POST create_db once Apache + DB are up), so a fresh container is login-ready with admin/password. The Dockerfile also makes the PHP session cookie host-only (DVWA otherwise scopes it to domain=localhost, a dotless host Python's cookie jar refuses to send back — which silently breaks the engagement authenticator). Without these, login silently fails and every crawl sees only login.php.login.php), force a clean rebuild: docker compose -f docker/docker-compose.yml up -d --build --force-recreate dvwa.python -m clinkz scan --target http://localhost:8080 --authorization <auth.json>
open_engagement is the first statement of OrchestratorAgent.run() and refuses without one, by design and with no flag to skip it. A bare --target run exits with "Refusing to start: this engagement has no authorization record." Write a small JSON file carrying authorizing_party, authorizing_role, authorizing_contact, authorization_reference, permitted_techniques (["*"]), and emergency_contact — you own the local container, so you are the authorizing party. Keep it OUT of the repo (outputs/ is local-only by policy; a scratch dir is fine).clinkz-tools image built before the Playwright layer confirms nothing and logs "no available tool provides 'client_side_execution'". Rebuild once: docker compose -f docker/docker-compose.yml build tools && docker compose -f docker/docker-compose.yml up -d --force-recreate tools._test_nosqli, a Tier-1 primitive beyond the 14 categories — see docs/ROADMAP.md) is N/A on DVWA (PHP/MySQL, no NoSQL backend): expect zero nosqli findings. The methodology emits only on a real NoSQL signal (operator match-set widening or a $where channel) and rejects SQL errors, so a nosqli finding here is a regression, not a catch._test_xxe, a Tier-1 primitive beyond the 14 categories — see docs/ROADMAP.md) is N/A on DVWA (no endpoint parses an XML request body; the upload handler rejects non-images without parsing XML): expect zero xxe findings. Phase-1 candidacy requires the endpoint to actually parse XML (entity expansion / XML parse-error / malformed-vs-well-formed divergence), so an xxe finding here is a regression, not a catch._test_ssti, a Tier-1 primitive beyond the 14 categories — see docs/ROADMAP.md) is N/A on DVWA (no server-side template engine evaluates user input): expect zero ssti findings. Phase-1 candidacy requires a polyglot arithmetic probe to actually evaluate (the product rendered, the literal wrapper not reflected verbatim), so DVWA's literal reflection is correctly a non-finding — an ssti finding here is a regression, not a catch._test_jwt, the first Tier-2 primitive beyond the 14 categories — see docs/ROADMAP.md) are N/A on DVWA (PHP session cookies, no JWT): expect zero jwt findings. DVWA holds no bearer JWT and its endpoints issue none, so phase-1 acquisition finds no candidate token and nothing emits — a jwt finding here is a regression, not a catch._test_open_redirect) is APPLICABLE on DVWA and confirmed live. The redirect handler lives at /vulnerabilities/open_redirect/source/<level>.php?redirect= — the level is in the path (the index just links to the security-appropriate one), so the methodology confirms each level's ground-truth bypass: Low (any absolute off-site URL), Medium (protocol-relative //evil, absolute http(s):// blocked), High (substring-allowlist bypass — an attacker URL containing info.php, e.g. https://evil.example/?x=info.php; the token is recovered from the param's own ?redirect=info.php value), Impossible (numeric-ID only → justified non-finding). Confirmation is browser-faithful host resolution (the redirect must navigate off-site to the attacker host; a same-host path that merely contains the attacker string is a non-finding, never a phantom). All four levels are proven by the parametrized live smoke (tests/test_skills_dvwa/test_skills.py::test_open_redirect_against_dvwa[low|medium|high|impossible]). In a full run the crawler discovers source/low.php (the index links the low handler at security=low), so expect open-redirect to confirm at Low; if it shows empty, check the trace for open_redirect/source/low.php?redirect= reaching planning before reporting it as missed./vulnerabilities/authbypass/ but is a flagged methodology gap, not currently confirmed. DVWA's authbypass is function-level access control — a low-priv user invoking the admin-only AJAX endpoints (get_user_data.php / change_user_details.php) that omit an authorization check — NOT an index-page ?id= object-reference IDOR. Clinkz authenticates as admin (no privilege boundary to cross) and _test_idor models object-reference IDOR, so it cannot confirm this module; the smoke test is an honest xfail documenting the gap. Report it as a justified non-finding (methodology gap), not a catch — confirming it needs a function-level-access-control methodology with a second low-priv session (follow-up)./vulnerabilities/cryptography/) and API (/vulnerabilities/api/) ship in this image but are outside the 14-category scope — Clinkz has no methodology for them, so they are neither counted in X/14 nor a mis-mark; documented capability gaps (ROADMAP candidates). Likewise the Insecure CAPTCHA module is out of scope.Do NOT fix issues found during the run. Measurement only unless the user asks for fixes.