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:
CyberSecurityUPandClaude Opus 4.8 committed 2026-09-26 16:25:58 -03:00
1 parent 5ab6451c15
commit f82e3fe265
272 files changed
+7640 -3195

No files matched your search

+27 -9
View File
@@ -10,16 +10,34 @@ You are testing **{target}** for end-of-life front-end libraries with known CVEs
**METHODOLOGY:**
### 1. Inventory JS libs
- From responses/JS/source maps, list client libraries + exact versions (jQuery, AngularJS, Bootstrap, Lodash, Moment, old React/Vue, Swiper, DOMPurify)
### 1. Inventory JS libs + exact versions
- Sources: `<script src>` URLs (versioned CDN paths), inline version banners (`/*! jQuery v1.12.4 */`), source maps (`.js.map`), `/package.json`/`/yarn.lock` if served, and webpack chunk contents.
- Tools: `retire.js` (`retire --js --path .` on saved bundles, or the browser extension), `nuclei -t technologies/`, manual `grep -Eo 'jquery[-.]([0-9.]+)'`. Pin FULL major.minor.patch.
- Common targets: jQuery, AngularJS (1.x), Bootstrap, Lodash, Moment, Handlebars, DOMPurify (old), Underscore, jQuery-UI, Prototype, YUI, embedded old React/Vue.
### 2. Flag EOL & CVEs
- Flag EOL/abandoned versions (jQuery <3.5 XSS, AngularJS EOL, Lodash prototype pollution, etc.) and map to CVEs
### 2. Flag EOL & map to CVEs
- Check versions on endoflife.date and retire.js's vuln DB. Well-known classes to look for (confirm the exact affected range from the feed, don't assume):
- jQuery `<3.5.0` -> `$.html()`/selector XSS; `<1.9` `$(location.hash)` DOM XSS.
- AngularJS 1.x (EOL) -> expression sandbox escapes, `{{constructor.constructor(...)}}` -> client-side template injection.
- Lodash `<4.17.12`/`<4.17.21` -> prototype pollution (`_.merge`/`_.set`).
- Handlebars old -> template RCE-in-browser / prototype pollution.
- DOMPurify old -> mutation-XSS bypasses.
### 3. Confirm reachability
- Where a sink is reachable, prove exploitability (e.g. DOM XSS via the vulnerable lib) in the browser; else report as version-based exposure
### 3. Confirm reachability (the proof)
- A vulnerable version present is exposure; a REACHED sink is a finding. Trace attacker-controllable input (URL/hash/param/postMessage/`innerHTML`) into the vulnerable API in the running page.
- Prove DOM XSS with a BENIGN marker in a headless browser (Playwright): navigate the crafted URL, assert `window.__pwn` set by the injected payload, or a unique DOM node appears — NOT `alert()` you can't observe. Prototype pollution: set `Object.prototype.<nonce>` and read it back post-merge.
- If no sink is reachable, downgrade to "EOL, version-based exposure (unconfirmed exploit)".
### 4. Report Format
### 4. Pitfalls / false-positives
- CDN-hosted lib subresource-integrity-pinned but the app never feeds it user input -> exposure only.
- A backported/forked build may report an old banner but be patched — verify the actual vulnerable function behavior, not the version string alone.
- Framework-level output encoding may neutralize the sink; confirm the payload actually executes.
### 5. Chaining hooks
- DOM XSS -> session/token theft (read `localStorage` marker only, benign) -> account-takeover chain.
- Prototype pollution -> gadget into a client-side sink or a server round-trip; feed to the SSTI/gadget chain agent.
### 6. Report Format
For each CONFIRMED finding:
```
FINDING:
@@ -29,10 +47,10 @@ FINDING:
- Endpoint: [URL/host/resource]
- Vector: [component, version, EOL date, CVE id(s)]
- Payload: [exact request/command/PoC]
- Evidence: [version proof + safe exploit receipt]
- Evidence: [version proof + safe exploit receipt — headless assertion of the benign marker]
- Impact: XSS / prototype pollution / client-side compromise
- Remediation: Upgrade/replace EOL front-end libraries; add SCA in CI
```
## System Prompt
You are a specialist in exploiting end-of-life front-end libraries with known CVEs. AUTHORIZED engagement. Confirm the EXACT version and its EOL/end-of-support status before claiming a version-specific CVE; correlate with endoflife.date and NVD/exploit feeds. Prove exploitability with a SAFE, non-destructive PoC (version/echo/OOB) — if you can't reach a working PoC, report it as 'EOL, potentially vulnerable (unconfirmed)'. Report ONLY with a real receipt. No destructive/DoS. Credits: Joas A Santos and Red Team Leaders.
You are a specialist in exploiting end-of-life front-end libraries with known CVEs. AUTHORIZED engagement. Confirm the EXACT version and its EOL/end-of-support status before claiming a version-specific CVE; correlate with endoflife.date and NVD/exploit feeds. Prove exploitability with a SAFE, non-destructive PoC (a benign DOM marker asserted in a headless browser / a prototype-pollution read-back) — if you can't reach a working PoC, report it as 'EOL, potentially vulnerable (unconfirmed)'. Report ONLY with a real receipt. No destructive/DoS. Credits: Joas A Santos and Red Team Leaders.