首页 渗透工具 正文
  • 本文约2954字,阅读需15分钟
  • 32
  • 0

VigilantX:高效的被动式XSS漏洞检测工具

摘要

项目简介 VigilantX 是一个专为 Burp Suite 设计的被动式 XSS(跨站脚本)漏洞检测扩展。该工具采用创新的两阶段检测机制,能够高效、准确地识别 Web 应用中的 XSS 漏洞,并通过飞书 Webhook 实时推送漏洞发现通知。 核心特性 1. 两阶段智能检测 Phase 1 反射检测:使用16位随机字符串替换URL参数,精确检测参数反射点...

项目简介

image-20250912005039377

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

核心优化技术

  1. URL签名去重base_url + "|" + sorted_param_types_names
  2. 内存管理:自动清理过期的URL记录和请求哈希
  3. 编码处理:对URL参数进行正确的URL编码,确保HTTP请求格式规范
  4. 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. 安装配置

  1. 在 Burp Suite 中加载 VigilantX.py 扩展
  2. 在 "VigilantX" 标签页中配置目标域名
  3. (可选)配置飞书 Webhook URL 用于接收通知
  4. 调整扫描参数(延迟、线程数等)
    image-20250912005609712

2. 启动扫描

  1. 点击 "Enable Passive Scanning" 按钮
  2. 正常浏览目标网站,或使用 Burp 的其他功能发送请求
  3. 扫描器将自动检测匹配域名的请求并进行测试
    image-20250912005713032

3. 查看结果

  • 实时日志:在工具界面查看详细的扫描过程
  • 飞书通知:接收分阶段的漏洞发现通知
  • 手动验证:根据发现的 payload 进行手动确认
    image-20250903162628736

实战效果

检测准确率

  • 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)>"
  ]
}

注意事项

  • 本工具仅供授权的安全测试使用
  • 请遵守相关法律法规和道德准则
  • 不得用于未经授权的系统测试
  • 建议在测试环境中充分验证后再在生产环境使用
评论
博主关闭了评论
友情链接