VigilantX:高效的被动式XSS漏洞检测工具
项目简介
VigilantX 是一个专为 Burp Suite 设计的被动式 XSS(跨站脚本)漏洞检测扩展。该工具采用创新的两阶段检测机制,能够高效、准确地识别 Web 应用中的 XSS 漏洞,并通过飞书 Webhook 实时推送漏洞发现通知。
核心特性
1. 两阶段智能检测
- Phase 1 反射检测:使用16位随机字符串替换URL参数,精确检测参数反射点
- Phase 2 漏洞确认:对发现的反射点进行 XSS payload 验证,确认真实漏洞
2. 高效性能优化
- 智能去重:基于 URL+参数结构签名,避免重复测试相同的参数组合
- 并发控制:可配置的线程池管理,支持1-10个并发扫描线程
- 速率限制:可调节的请求间隔,避免对目标服务器造成压力
3. 精准目标定位
- 域名过滤:支持精确匹配和通配符匹配(如
*.example.com
) - 参数类型检测:专门针对 GET 和 POST 参数进行测试
- 请求识别:智能过滤自身发送的测试请求,避免无限循环
4. 实时通知系统
- 飞书集成:支持飞书 Webhook 推送,实时获取漏洞发现通知
- 分阶段报告:Phase 1 发现反射参数时立即通知,Phase 2 确认漏洞时详细报告
- 格式化消息:结构化的消息格式,包含完整的漏洞信息和修复建议
5. 用户友好界面
- 直观GUI:分离式界面设计,左侧日志右侧 payload 管理
- 配置持久化:所有配置自动保存至用户目录,重启后保持设置
- 实时日志:详细的扫描日志,支持不同级别的日志输出
- Payload管理:可视化的 payload 编辑和管理功能
技术实现
检测算法
def detect_xss_vulnerability(self, url, httpService, original_request):
# Phase 1: 反射检测
for param in parameters:
random_string = self.generate_random_string() # 16位随机字符串
test_response = self.send_test_request(param, random_string)
if self.check_reflection(test_response, random_string):
reflected_params.append(param)
self.send_reflection_alert(url, param.getName())
# Phase 2: Payload验证
for param in reflected_params:
for payload in self.xss_payloads:
if self.test_payload(param, payload):
self.send_xss_alert(url, param.getName(), payload)
break
核心优化技术
- URL签名去重:
base_url + "|" + sorted_param_types_names
- 内存管理:自动清理过期的URL记录和请求哈希
- 编码处理:对URL参数进行正确的URL编码,确保HTTP请求格式规范
- Unicode兼容:完善的中文字符处理,避免编码错误
配置说明
基础配置
- 目标域名:支持多个域名配置,每行一个
- 飞书Webhook:用于接收漏洞通知的Webhook URL
- 扫描延迟:请求间隔时间(0.1-10秒)
- 并发线程:最大并发扫描线程数(1-10个)
Payload配置
工具内置了基于实战测试优化的 XSS payload 集合:
'<Script>alert(String.fromCharCode(88,83,83))</scriPt>'
'<script>alert`1`</script>'
'1" onfocus=alert(1) autofocus="',
'"/><ScRiPt>alert()</ScriPt>//',
'<svg onload=alert(1)>'
'1\' onfocus=alert(1) autofocus=\'',
使用流程
1. 安装配置
- 在 Burp Suite 中加载 VigilantX.py 扩展
- 在 "VigilantX" 标签页中配置目标域名
- (可选)配置飞书 Webhook URL 用于接收通知
- 调整扫描参数(延迟、线程数等)
2. 启动扫描
3. 查看结果
实战效果
检测准确率
- Phase 1 反射检测:使用16位随机字符串,误报率极低
- Phase 2 漏洞确认:多重验证机制,确保发现的都是真实可利用漏洞
- 去重机制:避免重复测试,提高扫描效率
性能表现
- 内存优化:自动清理机制,长期运行稳定
- 速率控制:可调节扫描强度,适应不同场景
- 并发处理:多线程架构,显著提升扫描速度
通知示例
Phase 1 - 反射参数发现
=== XSS SCANNER ALERT ===
[Phase 1] REFLECTION PARAMETER DETECTED
TARGET INFO:
- URL: http://example.com/search.php
- Reflected Parameter: keyword
TIME: 2025-09-03 06:18:32
Phase 2 - 漏洞确认
=== XSS VULNERABILITY CONFIRMED ===
[Phase 2] CRITICAL SECURITY ISSUE DETECTED
TARGET INFO:
- URL: http://example.com/search.php
- Vulnerable Parameter: keyword
PAYLOAD INFO:
- Original: xss' onfocus=alert(1) autofocus='
- URL-Encoded: xss%27+onfocus%3Dalert%281%29+autofocus%3D%27
DETECTED: 2025-09-03 06:18:34
技术亮点
1. 智能化检测逻辑
- 避免传统工具的高误报率问题
- 两阶段验证确保结果可靠性
- 针对性的 payload 优化
2. 工程化设计
- 完善的错误处理机制
- 跨平台兼容性
- 模块化的代码结构
3. 用户体验优化
- 零配置即可使用
- 详细的操作日志
- 直观的界面设计
项目结构
VigilantX/
├── VigilantX.py # 主要扩展文件
└── README.md # 项目说明文档
安装要求
- Burp Suite Professional 或 Community Edition
- Jython 2.7+ 环境
- Java 8+ 运行环境
配置文件
工具会在用户主目录创建配置文件:~/.VigilantX.json
示例配置:
{
"feishu_webhook_url": "https://www.feishu.cn/flow/api/trigger-webhook/...",
"target_domains": [
"example.com",
"*.test.com"
],
"request_delay": 0.2,
"max_concurrent_threads": 3,
"xss_payloads": [
"xss' onfocus=alert(1) autofocus='",
"<Script>alert(String.fromCharCode(88,83,83))</scriPt>",
"<svg onload=alert(1)>"
]
}
注意事项
- 本工具仅供授权的安全测试使用
- 请遵守相关法律法规和道德准则
- 不得用于未经授权的系统测试
- 建议在测试环境中充分验证后再在生产环境使用