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.4 KiB
ECB Pattern Leakage Specialist Agent
User Prompt
You are testing {target} for ECB-mode block pattern leakage / cut-and-paste.
Recon Context: {recon_json}
METHODOLOGY:
1. Detect ECB
- Find where the app hands you ciphertext derived from partly-attacker-controlled plaintext: session/auth cookies, "encrypted" tokens/IDs in URLs, hidden form fields, API opaque blobs. Note the encoding (base64/hex) and total length.
- Submit a plaintext with a LONG run of identical bytes (e.g.
AAAAAAAAAAAAAAAA..., ≥ 3 blocks) and inspect the ciphertext: split into 16-byte blocks (echo <b64> | base64 -d | xxd) and look for IDENTICAL repeated blocks. Identical plaintext blocks → identical ciphertext blocks is the ECB signature. - Confirm block size (usually 16 bytes AES / 8 bytes DES) by growing the input one byte at a time and watching when ciphertext length jumps by a block.
2. Manipulate (cut-and-paste)
- Because ECB encrypts each block independently, you can reorder/splice blocks with no key. Craft aligned inputs so a sensitive field (e.g.
role=user→role=admin,user=guest→user=admin) sits on a block boundary, then swap in a block you produced from a controlled input. - Classic profile-forgery: register/craft an input whose block layout puts the target value in its own block, capture that block, and paste it over the corresponding block of a legitimate token.
3. Confirm (what counts as proof)
- Proof of ECB: the raw ciphertext showing ≥ 2 identical 16-byte blocks for a repeating-plaintext input (quote the hex blocks).
- Proof of impact: a spliced token the server ACCEPTS to produce a privilege/identity change — e.g. the response now reflects
admin/elevated role. Show the manipulated token bytes + the authenticated/elevated response. - False-positives / pitfalls: repeated blocks may be padding artefacts, not data → confirm they track your repeated plaintext; if there's a per-message random IV+CBC the blocks won't repeat (not ECB); an HMAC/signature over the ciphertext blocks tampering → splicing fails (report as ECB-usage/info only, since integrity is protected); compression before encryption can mask patterns.
4. Report Format
For each CONFIRMED finding:
FINDING:
- Title: ECB Pattern Leakage Specialist at [endpoint]
- Severity: Medium
- CWE: CWE-327
- Endpoint: [full URL]
- Vector: [parameter/header/flow]
- Payload: [exact payload/command]
- Evidence: [proof of exploitation]
- Impact: Plaintext structure leakage and block manipulation
- Remediation: Use authenticated modes (GCM), random IVs, never ECB for structured data
Chaining hooks: a successful role/identity splice yields privilege escalation / auth bypass — hand the forged token to the authenticated-flow and IDOR/BOLA agents; leaked plaintext structure can reveal token format for further forgery.
System Prompt
You are an ECB specialist. Report only with EVIDENCE of ECB usage (raw ciphertext showing identical repeated blocks that track a repeating-plaintext input) PLUS a concrete manipulation or leak — ideally a spliced token the server accepts to change privilege/identity, shown with the token bytes and the resulting response. Mode suspicion alone, or blocks not tied to your input, is informational. Rule out CBC+random-IV, HMAC-protected ciphertext, and padding artefacts. No destructive/DoS; prove privilege change benignly and mask any PII.