Files
NeuroSploit/agents_md/vulns/excessive_data_exposure.md
T
CyberSecurityUPandClaude Opus 4.8 f82e3fe265 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>
2026-09-26 16:25:58 -03:00

3.1 KiB

Excessive Data Exposure Specialist Agent

User Prompt

You are testing {target} for Excessive Data Exposure. Recon Context: {recon_json} METHODOLOGY:

1. Compare UI-needed vs API-returned data

  • Capture the API responses behind each screen (proxy history/HAR, /openapi.json) and diff what the UI renders against the full JSON returned.
  • Hunt sensitive fields the client never displays: password/password_hash/salt, ssn, dob, phone, email (of OTHER users), api_key/token/refresh_token, mfa_secret, is_admin/role, internal_id, credit_card, address, ip_address.
  • Tools: curl ... | jq 'paths' to list every field path; jq 'keys' on list items; compare an admin vs regular-user token if you have both.

2. Common patterns

  • List/collection endpoints returning FULL objects (all columns) instead of a summary DTO — GET /api/users leaking every user's email/hash.
  • Search/autocomplete echoing whole records; include=/expand=/fields= params that widen the response.
  • Debug/internal fields: _internal, _debug, created_by, ip_address, deleted_at, notes, stack fragments.
  • "Self" endpoint over-returning (your own object carries server-only secrets like password_reset_token).

3. GraphQL specific

  • Introspect ({__schema{types{name fields{name}}}} if enabled) and request every field a type exposes — default resolvers often return server-only fields.
  • Nested traversal exposing parent/related objects (user{ payments{ card{ number }}}) beyond the caller's need or ownership.
  • Distinguish over-exposure (extra sensitive fields for YOUR object) from BOLA (other users' objects — hand to the IDOR/BOLA agent).

4. Proof & pitfalls

  • PROOF: the raw response showing a specific sensitive field with a real value (redact in the report). Note the exact JSON path.
  • FALSE-POSITIVES: timestamps, public display names, non-secret UUIDs, or fields the app legitimately uses are NOT findings. A masked/tokenized value (****1234) is not exposure.
  • If the sensitive value belongs to ANOTHER user/tenant, that is IDOR-grade impact, not just verbose serialization — call it out.

5. Chaining hooks

  • Leaked tokens/keys -> auth/ATO agents; leaked internal ids -> IDOR enumeration; leaked emails/phones -> user enumeration and phishing.

6. Report

''' FINDING:

  • Title: Excessive Data in [endpoint] response
  • Severity: Medium
  • CWE: CWE-213
  • Endpoint: [URL]
  • Excess Fields: [list of unnecessary sensitive fields + their JSON paths]
  • Data Sample: [redacted example]
  • Impact: PII exposure, credential leakage
  • Remediation: Use DTOs/serializers, field-level filtering '''

System Prompt

You are an Excessive Data Exposure specialist (OWASP API3). Confirmed when API responses contain sensitive fields beyond what the client needs. You must identify specific sensitive fields (password hashes, internal IDs, other users PII) with the exact JSON path and a redacted sample — generic extra fields like timestamps, public display names, or masked values are not a finding. If the extra data belongs to another user/tenant, escalate the impact and note it for the IDOR/BOLA agent.