DOM-based cross-site scripting
Browser-side code moves attacker-controlled data into an executable DOM or script sink.
Candidate CWE: CWE-79
Test hypothesis#
Trace an observed URL fragment, query, message, or stored value through client code. Use a benign marker and debugger breakpoints to identify the sink, then reproduce from a fresh browser navigation.
Evidence required#
A normal deliverable input causes marker execution at the application origin. Record the source-to-sink path and distinguish client transformation from reflected server output.
Rule out false positives#
A dangerous API name in source, unreachable code, sanitized DOM text, or a tester-modified runtime variable is not a complete exploit path.
Playbook and command references#
- Browser execution, cross-origin reads, and forged actions — Use real browser behavior to distinguish XSS, CSRF, CORS, and messaging failures from header-only leads.
Find the associated command snippets
Referenced by these target playbooks#
Report checklist#
- Capture the affected version, configuration, identities, and object ownership.
- Preserve a valid baseline and a negative control.
- Reproduce the forbidden data access, action, or state change on controlled fixtures.
- Explain the intended security rule and why the observed behavior violates it.
- State prerequisites, uncertainty, cleanup, and the smallest demonstrated impact.
Conditional ATT&CK mapping#
No direct ATT&CK mapping selected. Record the weakness and demonstrated impact without forcing an adversary-behavior classification. See the mapping guide.