Individual skill
exploiting-client-side-template-injection
Exploiting Client-Side Template Injection (CSTI) where a frontend framework (AngularJS, Vue, Mavo, Alpine.js) compiles attacker-controlled template syntax in the browser, turning a reflection into arbitrary JavaScript execution (XSS) often bypassing classic XSS filters and CSP. Activates when user input is reflected into a framework-controlled DOM and template expressions like {{7*7}} are evaluated.
internal/tools/skills/data/web-application-security/exploiting-client-side-template-injection/SKILL.md
Source commit d42f381ad34843e71a42658e5c57290c713e85af
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 9, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,329
- Repository last updated
- Nov 9, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- cybersecurity Repository topic
- security Repository topic
- bug-bounty Repository topic
- automation Repository topic
- autonomous-pentesting Repository topic
- ai-agent Repository topic
- ai-security Repository topic
- ethical-hacking Repository topic
- golang Repository topic
- penetration-testing Repository topic
- penetration-testing Declared skill tag
- client-side-template-injection Declared skill tag
- csti Declared skill tag
- xss Declared skill tag
- owasp Declared skill tag
- web-security Declared skill tag
- security Derived category
- testing Derived category
- security-application Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Read excerpt
# Exploiting Client-Side Template Injection (CSTI)
## When to Use
- During authorized tests of apps built with AngularJS, Vue, Mavo, or Alpine.js
- When user input is reflected into a DOM region processed by the framework (not inert text)
- When classic XSS payloads (`<script>`, `<img onerror>`) are filtered but template syntax is not
- When you see directives: `ng-app`, `ng-bind`, `v-html`, `x-data`, `mv-`/`data-mv-`, or globals `window.angular`/Vue
- When you need to bypass CSP — framework gadgets can execute without inline `<script>`
## Critical: Variants Most Often Missed
Not every reflection into a framework page is exploitable. **Confirm the framework, then confirm the exact sink** (compiled expression vs inert HTML). The probe is `{{7*7}}` → renders `49` = CSTI; renders `{{7*7}}` literally = not (look for a directive/event sink instead).