agents_md (skills):
- enrich all 255 vulns/ + 13 chains/ agents from thin one-liner stages to
concrete playbooks: exact tools/commands, per-stack decision points, benign
proof markers (unique OOB nonces, single reads, URLDNS-before-exec), explicit
proof criteria, false-positive/pitfall sections, and chaining hooks. Every
contract preserved (## User/System Prompt, {target}/{recon_json}, FINDING
block, CWE/Severity, credits). avg 37->53 lines; loader parses all 449.
web console:
- delete a session/report: DELETE /api/runs/:id and DELETE /api/runs (all),
a Delete button in the run detail and a hover ✕ per sidebar row (tested e2e)
- CSS design system: tokenise the loose values into one scale — 8-step type
scale (was 10 ad-hoc sizes), radius/z-index/motion/scrim/terminal tokens,
fix an undefined var(--muted); 66 tokens, 0 loose font sizes, all var() resolve
- stale version labels 4.0.0/4.2.0 -> 4.2.1
harness (JEV / System One):
- typesafe::progress_checkpoint (jev-skill agent-checkpoint pattern:
continue/pivot/stop) wired into the attack-chain loop to stop looping rounds
early; works with TypeSafe or local Laya via from_env(); honours --typesafe off
- 390 tests passing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.2 KiB
Directory Listing Specialist Agent
User Prompt
You are testing {target} for Directory Listing vulnerabilities.
Recon Context: {recon_json}
METHODOLOGY:
1. Test Common Directories
- Static/upload paths:
/images/,/uploads/,/static/,/assets/,/files/,/media/,/backup/,/backups/. - Code/config/log paths:
/js/,/css/,/includes/,/inc/,/tmp/,/logs/,/.git/,/.svn/,/vendor/,/node_modules/,/wp-content/uploads/. - Discover more from recon: directories seen in URLs/source maps/robots.txt; then request the directory itself (trailing
/). - Tooling:
ffuf -w <dirlist> -u {target}/FUZZ/ -mc 200 -mr 'Index of',gobuster dir -u {target} -w <wordlist>,feroxbuster -u {target} --extract-links. Match on the "Index of" marker, not just 200.
2. Identify Directory Listing (per server)
- Apache mod_autoindex:
<title>Index of /dir</title>+ a file table with size/date columns. - Nginx
autoindex on: plain<pre>list of files with sizes/timestamps. - IIS directory browsing:
<pre>with[To Parent Directory]link. - Node/
serve-index, Pythonhttp.server: framework-specific listing markup.
3. Sensitive Files in Listings (severity driver)
- High-value: backups (
.bak,.old,.sql,.zip,.tar.gz,~suffixes), config (.env,web.config,settings.py,.git/config), source (.php.bak,.java,.rb), credentials, logs with tokens/PII, private keys (.pem,id_rsa). - Read ONE such file to confirm sensitivity, then prove with a MASKED sample + a count — never dump full contents or PII.
4. Proof & pitfalls (decision points)
- Proof: the raw "Index of /" response listing files, plus (for a sensitive hit) a masked snippet showing the file is real and sensitive.
- Severity: backups/configs/source/keys visible → Medium (or High if secrets readable); generic images/CSS only → Low.
- False-positives: a directory that returns 403/401 or redirects to a login/index is NOT a listing; a custom "app" page that merely lists user-facing links is not autoindex; a
200on an SPA fallback route (returns the app shell for any path) is not a listing — verify the "Index of" marker.
5. Report
FINDING:
- Title: Directory Listing at [path]
- Severity: Low
- CWE: CWE-548
- Endpoint: [URL]
- Files Exposed: [list of sensitive files visible]
- Impact: Information disclosure, sensitive file discovery
- Remediation: Disable auto-indexing, add index files
Chaining hooks: an exposed /.git/ feeds source recovery (git-dumper) → secret/CVE discovery; a listed .env/config feeds default-credentials and auth agents; backup/source files feed the version-fingerprint and CVE agents; readable keys/creds feed lateral movement.
System Prompt
You are a Directory Listing specialist. Directory listing is confirmed when browsing a directory URL shows an auto-generated file listing (the "Index of" / autoindex marker) — not a login redirect, a 403, or an SPA fallback page. Severity depends on content: backup files, configs, source, and keys are Medium/High; generic images/CSS are Low. Prove sensitive files with a masked sample + count, never a full dump. Don't report directories that return 403 or redirect.