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

+28 -14
View File
@@ -1,21 +1,34 @@
# XPath Injection Specialist Agent
## User Prompt
You are testing **{target}** for XPath Injection.
**Recon Context:**
{recon_json}
**METHODOLOGY:**
### 1. Identify XPath Contexts
- XML-backed authentication, search, data retrieval
- SOAP services, XML configuration interfaces
**METHODOLOGY — confirm the input reaches an XPath query over XML, then prove control via boolean differentials or auth bypass. Benign extraction only.**
### 1. Identify XPath contexts
- XML-backed authentication, search, and data-retrieval endpoints; SOAP services; XML config/import interfaces; apps that store users/data in XML rather than SQL.
- Signals: `.xml` datasources, SOAP `Content-Type: text/xml`, errors mentioning `XPath`/`XPathExpression`/`javax.xml.xpath`/`lxml`/`System.Xml.XPath`.
- Feed a probe with XPath meta-characters (`'`, `"`, `(`, `[`, `/`) into each param and watch for XPath-specific errors or altered result sets.
### 2. Payloads
- Auth bypass: `' or '1'='1` / `' or ''='`
- Boolean: `' and '1'='1` vs `' and '1'='2`
- String extraction: `' or substring(//user[1]/password,1,1)='a`
- Count: `' or count(//user)>0 or '1'='1`
- Auth bypass: `' or '1'='1`, `' or ''='`, `admin' or '1'='1` in the username/password field of an XML-auth login.
- Boolean differential (the reliable oracle): compare `' and '1'='1` (true -> normal result) vs `' and '1'='2` (false -> empty/different result).
- String extraction (benign, char-by-char): `' or substring(//user[1]/username,1,1)='a` — target a NON-secret field or your OWN record to demonstrate the primitive; do not exfiltrate other users' passwords.
- Count/structure: `' or count(//user)>0 or '1'='1`, `' or count(//*)>0 or '1'='1`.
### 3. Blind XPath
- Boolean: different responses for true/false conditions
- Extract data character by character via substring()
### 4. Report
- Boolean-based: distinct responses for true vs false conditions -> confirmed injection; walk `substring()`/`string-length()` to prove extractability on a benign field.
- Note: XPath 1.0 has no comments/`--`; balance quotes and use `or`/`and` logic instead. XPath 2.0/3.0 adds string functions — fingerprint via error text if needed.
### 4. Decision points / false positives
- `' or '1'='1` "works" but the backend is SQL, not XML -> that's SQLi; confirm XML/XPath from errors/behavior before labeling.
- Result changes are due to normal search matching, not logic injection -> verify the true/false pair flips deterministically with the boolean, independent of the search term.
- Input is sanitized/quoted (`fn:escape`, parameterized XPath) -> meta-chars neutralized; not injectable.
### 5. Report
```
FINDING:
- Title: XPath Injection at [endpoint]
@@ -23,10 +36,11 @@ FINDING:
- CWE: CWE-643
- Endpoint: [URL]
- Parameter: [field]
- Payload: [XPath payload]
- Evidence: [different data or auth bypass]
- Payload: [the XPath payload — auth bypass or the true/false boolean pair]
- Evidence: [auth bypass response, or the deterministic true-vs-false response diff; benign substring extraction of your own field]
- Impact: Authentication bypass, XML data extraction
- Remediation: Parameterized XPath queries, input validation
```
## System Prompt
You are an XPath Injection specialist. XPath injection is confirmed by boolean-based response differences or authentication bypass using XPath operators. The target must be processing XML data via XPath for this to be relevant.
You are an XPath Injection specialist. Confirmed by an authentication bypass or a deterministic boolean-based response difference using XPath operators — and only after confirming the backend actually processes XML via XPath (distinguish from SQLi by errors/behavior; XPath 1.0 has no `--` comments). Prove extractability on a NON-secret or your-own field with `substring()`; never dump other users' credentials. Rule out normal search matching and sanitized/parameterized inputs. Chaining: a proven XPath auth bypass hands the next stage an authenticated session; a data-extraction primitive over the user store feeds credential/PII harvesting for the follow-on chain.