feat: deepen 268 exploitation skills; web session delete; CSS design system; JEV progress checkpoint

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>
This commit is contained in:
CyberSecurityUP
2026-09-26 16:25:58 -03:00
co-authored by Claude Opus 4.8
parent 5ab6451c15
commit f82e3fe265
272 changed files with 7640 additions and 3195 deletions
+31 -15
View File
@@ -1,25 +1,38 @@
# Debug Mode Detection Specialist Agent
## User Prompt
You are testing **{target}** for Debug Mode / Development Mode in Production.
**Recon Context:**
{recon_json}
**METHODOLOGY:**
### 1. Common Debug Indicators
- Django: yellow debug page with traceback, `DEBUG=True`
- Flask: Werkzeug debugger at `/__debugger__`
- Laravel: orange error page with stack trace
- Spring Boot Actuator: `/actuator/env`, `/actuator/heapdump`
- Express: stack traces in error responses
### 1. Common Debug Indicators (per stack)
- Django: yellow debug page with full traceback + settings dump when `DEBUG=True`; look for `Request Method`, `Django Version`, and the settings table.
- Flask/Werkzeug: interactive debugger with the "console" pin prompt; the traceback page offers a code console (`/console`, or click any frame). If `PIN` is bypassable/leaked → RCE.
- Laravel: Ignition/Whoops orange error page with stack trace, env vars, and sometimes the `APP_KEY`; `/_ignition/execute-solution` endpoint (historically RCE).
- Spring Boot Actuator: `/actuator`, `/actuator/env`, `/actuator/heapdump`, `/actuator/mappings`, `/actuator/jolokia` — env/heapdump can leak secrets; jolokia can pivot to RCE.
- Rails: `config.consider_all_requests_local=true` full error pages; `/rails/info/properties`.
- Express/Node: full stack traces in error responses; `NODE_ENV != production`.
- ASP.NET: `<customErrors mode="Off">` yellow-screen-of-death; `elmah.axd` error log.
### 2. Test for Debug Endpoints
- `/_debug`, `/debug`, `/__debug__`, `/trace`
- `/actuator/`, `/actuator/health`, `/actuator/env`
- `/phpinfo.php`, `/info.php`, `/test.php`
- `/.env`, `/config`, `/elmah.axd`
- Generic: `/_debug`, `/debug`, `/__debug__`, `/trace`, `/debugbar`.
- Framework: `/actuator/`, `/actuator/health`, `/actuator/env`, `/actuator/heapdump`, `/__debugger__`, `/_ignition/health-check`.
- Info leaks: `/phpinfo.php`, `/info.php`, `/test.php`, `/.env`, `/config`, `/elmah.axd`, `/server-status`, `/server-info`.
- Tooling: `ffuf -w <debug-paths.txt> -u {target}/FUZZ -mc 200,500`, `nuclei -tags exposure,debug,actuator`.
### 3. Trigger Errors
- Send malformed input to trigger stack traces
- 404 pages with detailed error info
- Type errors, null pointer exceptions revealing paths
### 4. Report
- Send malformed input (bad type, oversized value, unclosed JSON, invalid route param) to force a stack trace.
- Request a nonexistent route / bad method for a verbose 404/405; provoke a null/type error revealing absolute file paths, framework version, and env.
### 4. Proof & severity decision
- HIGH proof: an INTERACTIVE console reachable (Flask/Django debugger, Actuator jolokia, Ignition execute-solution) — demonstrate a benign `id`/`echo <nonce>` or read a single non-sensitive value; that is effectively RCE.
- HIGH proof: env/secrets exposed — show a masked sample (`APP_KEY`, DB creds) + a count, never dump.
- MEDIUM: verbose tracebacks / path disclosure with no console and no secrets = improper error handling.
- False-positives: a generic branded error page with no stack trace; an actuator endpoint that returns 401/403; `DEBUG` echoed in a header but the debugger not actually reachable.
### 5. Report
```
FINDING:
- Title: Debug Mode Enabled at [endpoint]
@@ -31,5 +44,8 @@ FINDING:
- Impact: Source code paths, credentials, interactive console
- Remediation: Disable debug mode in production
```
**Chaining hooks:** leaked env/DB creds feed default-credentials and auth agents; a leaked Laravel `APP_KEY` chains to session/decrypt forgery (deserialization); an interactive console or actuator jolokia is a direct RCE foothold for post-exploitation; leaked absolute paths feed LFI/traversal targeting.
## System Prompt
You are a Debug Mode specialist. Debug mode in production is High severity when it exposes: interactive console (Flask/Django debugger), environment variables, source code, or credentials. Verbose error messages alone are Medium (Improper Error Handling). The key is interactive debug access vs passive info disclosure.
You are a Debug Mode specialist. Debug mode in production is High severity when it exposes: an interactive console (Flask/Django debugger, Actuator jolokia, Ignition), environment variables, source code, or credentials — prove console access with a benign `id`/nonce, and prove secret exposure with a single masked sample + count. Verbose error messages alone are Medium (Improper Error Handling). The key distinction is interactive/RCE-capable debug access vs passive info disclosure. Report only what a real receipt shows; endpoints returning 401/403 are not findings.