项目地址:https://github.com/duckpigdog/XMCVE-WebRecon
项目概述
XMCVE-WebRecon 是一款基于 Chrome Manifest V3(MV3)架构的集成化 渗透测试 辅助插件,由星盟安全团队开发维护。该插件面向 Web 渗透测试与安全研究场景,深度整合了信息收集、漏洞验证、框架分析和逆向辅助等能力,旨在减少测试过程中多工具切换的碎片化操作,提升排查与验证效率。
核心理念:在合法授权范围内,以浏览器扩展形式打造 “All-in-One” 前端安全测试工作台,覆盖从信息收集到漏洞验证的完整测试链路。
核心文件架构
| 文件/目录 |
类型 |
职责说明 |
manifest.json |
配置文件 |
MV3 配置、权限声明、后台与弹窗入口定义 |
background.js |
Service Worker |
响应头监听与 CSP 缓存、后台请求代理(SQL_FETCH)、深度嗅探(DEEP_SNIFF) |
content.js |
内容脚本 |
页面内 DOM 采集与定位能力(表单扫描、字段高亮、元素定位) |
popup.html |
弹窗 UI |
各功能模块的布局结构与交互按钮 |
popup.js |
弹窗逻辑 |
按钮行为绑定、消息通信、数据导出与界面渲染 |
style.css |
样式表 |
弹窗视觉样式与布局控制 |
js.txt / api.txt / param.txt |
字典文件 |
Fuzz 扫描使用的内置字典(支持自定义扩充) |
功能模块详解
插件采用标签页式布局,将功能划分为六大核心模块。
信息收集模块
User-Agent 控制
- 预置规则库:内置 iPhone Safari、Android Chrome、Windows Chrome、iOS、荣耀、华为 nova、OPPO、小米等主流设备的 UA。
- 动态注入:通过
declarativeNetRequest 修改请求头,支持 “应用并刷新” 与 “清除并恢复”。
- 状态显示:实时展示当前站点(SITE)与当前生效的 UA 字符串。
敏感信息深度嗅探
- 技术实现:后台抓取当前页面 HTML 及所有引用脚本资源,进行多模式正则匹配。
识别类别:
- 网络资产:IP:端口、完整 URL、绝对路径(如
/api/...)、相对路径(如 ./../...)、域名
- 凭证线索:JWT Token、疑似 Key/Token、邮箱、手机号
- 加密算法关键词:AES、RSA、MD5、SHA256、bcrypt 等
- 敏感字段:password、token、access_token 等凭据线索
输出特性:
- 附带来源文件 URL 与行号定位
- 支持导出为 JSON、TXT、CSV、XLSX 格式(注:XLSX 实际为 CSV 内容保存为
.xlsx 扩展名,便于 Excel 直接打开)
框架指纹识别
- 识别对象:Vue、React、Angular、jQuery、Bootstrap 等常见前端框架/库
- 版本推断:优先从全局对象(如
Vue.version、React.version)与特征字段推断,其次从脚本文件名、CDN 路径等线索推断版本号
蜜罐识别
- 基于页面特征进行启发式检测,输出 “可能存在蜜罐” 或 “无明显特征” 的风险提示,辅助测试人员规避陷阱。
Fuzz 字典扫描
技术特点:基于字典批量探测资源/接口存在性,以状态码与 Content-Length 作为判断线索,支持暂停/继续控制。
| 扫描类型 |
字典文件 |
探测目标 |
关注状态码 |
| JS 文件 Fuzz |
js.txt |
常见脚本路径/文件名组合 |
200 / 302 / 403 |
| API Fuzz |
api.txt |
常见 RESTful 接口路径 |
200 / 302 / 403 |
| 接口 Fuzz |
param.txt |
参数/路径组合 |
200 / 302 / 403 |
交互设计:结果支持点击在新标签页打开对应 URL,便于快速验证。
XSS 辅助模块
批量填充(快速验证)
- 覆盖范围:当前页及所有子 Frame 中的
input、textarea、select、[contenteditable] 元素
- 测试载荷:内置固定字符串载荷,统一写入并触发输入事件,用于快速验证前端过滤、编码或 WAF 拦截规则
- 回归测试:固定载荷便于多次测试结果对比
CSP 读取与分析
- CSP 提取:从后台缓存的响应头中读取
Content-Security-Policy(覆盖主文档与子帧),并拆分展示各策略项
- Cookie 安全分析:
- 解析
Set-Cookie 响应头,区分 HttpOnly / 非 HttpOnly Cookie
- 读取前端
document.cookie,展示页面当前前端可见的 Cookie 条目
- 辅助判断 Cookie 窃取风险与前端可见性边界
安全线索面板(Security Container)
集中展示页面中快速可发现的风险线索:
| 线索类型 |
检测方式 |
安全意义 |
| HttpOnly Cookies |
响应头解析 |
标识受保护 Cookie,评估窃取难度 |
| Storage Tokens |
检索 localStorage/sessionStorage 中 token/auth/jwt/sess/key 关键词 |
发现前端存储的敏感凭证 |
| CSRF Tokens |
提取 meta 标签与隐藏字段中的 csrf/token 线索 |
评估 CSRF 防护机制 |
| PostMessage |
检测 message 事件监听 |
识别潜在的 PostMessage 安全风险 |
| 关键接口/敏感操作 |
从页面文本中提取敏感操作线索 |
快速定位高风险功能点 |
- 跨 Frame 扫描:递归遍历所有 Frame 中的表单元素
- 结构化展示:Frame 编号、Method、Action、Enctype、字段列表(Field、Value、Type、Hidden 标记)
- 定位交互:点击 “定位” 按钮联动到页面对应输入点并高亮显示,快速定位可控参数
URL 参数提取
- Query 参数区:解析
? 后的键值对
- Hash 参数区:解析
# 后的片段参数
- Path 参数区:识别 RESTful 风格的路径参数
编码转换工具箱
- HTML 实体编码:将 Payload 转换为
<、> 等实体形式
- URL 编码:标准 percent-encoding 编码
- 十六进制转义:生成
\x41\x42 形式的十六进制转义字符串
- 结果展示:列表形式并列展示,便于复制与多方案比对
SQL 注入模块(SQL HackBar)
该模块提供完整的 HTTP 请求构造与发送能力,辅助验证 SQL 注入及边界行为。
基础请求构造
- 方法支持:GET、POST、PUT、PATCH、DELETE
- 智能填充:支持从当前标签页自动填充 URL 等基础信息
- 后台代理:通过
background.js 发起请求,绕过前端 CORS 限制
注入入口配置
| 配置项 |
选项 |
说明 |
| ENTRY |
URL 参数 / POST 表单 / JSON / Cookie / Header |
指定注入点位置 |
| KEY |
自定义 |
要注入/替换的参数名 |
| PAYLOAD |
自定义 |
注入载荷 |
| ACTIONS |
追加 / 替换 |
选择参数处理方式 |
请求编辑区
- Headers:自定义请求头(支持多行键值对)
- Cookie:自定义 Cookie 字符串
- Body:支持 none、x-www-form-urlencoded、application/json、raw 四种格式
- 工具按钮:复制为 Curl 命令、清空表单
Response 回显
- Meta 信息:状态码与请求耗时
- Headers:完整响应头展示
- Body:响应体内容(超长自动截断并标注)
Vue 分析模块
专门针对 Vue 技术栈的深度分析工具:
- 版本检测:通过 DevTools App 全局对象与挂载 DOM 属性(
__VUE__、__vue_app__ 等)识别 Vue 版本号,支持 Vue 2 与 Vue 3
- 路由导出:尝试从运行时路由器(
vue-router)实例中导出完整路由表,并生成可访问的 URL 列表
- 批量操作:支持将 URL 列表复制到剪贴板,或一键批量在新标签页打开(适用于授权范围内的快速面巡)
- 路由守卫绕过:一键注入脚本拦截全局前置守卫(
beforeEach)与解析守卫(beforeResolve)的注册,缓解前端路由拦截,便于配合 DevTools 观察受保护路由
JS 逆向模块
提供 JavaScript 逆向分析辅助能力。
JS 开关控制
- 按站点粒度:基于
contentSettings API 对当前站点禁用/启用 JavaScript
- 状态显示:实时展示当前站点的 JS 开关状态
- 应用场景:禁用 JS 后观察 SSR 渲染结果,或降低前端逻辑干扰
反调试绕过脚本
| 绕过类型 |
技术实现 |
对抗目标 |
| 窗口尺寸检测绕过 |
冻结 innerWidth/innerHeight/outerWidth/outerHeight/visualViewport,拦截 resize 监听 |
“窗口尺寸变化即检测调试器”逻辑 |
| 无限 Debugger 绕过 |
暴力清理已有定时器/动画帧,Hook setTimeout/setInterval/requestAnimationFrame,拦截含 debugger 的任务 |
无限 debugger 循环反调试 |
| Eval Debugger 绕过 |
Hook eval 和 Function 构造器,拦截含 debugger 负载的代码执行 |
混淆代码中的动态反调试 |
| toString 环境检测绕过 |
通过隐藏 iframe 获取 “干净环境” 的 Function.prototype.toString,覆盖当前环境实现 |
函数 toString() 环境指纹检测 |
核心流程与交互设计
消息通信机制
插件采用 Chrome Extension 标准的消息通信模式:
popup.js <--(chrome.runtime.sendMessage)--> background.js
|
|--(chrome.tabs.sendMessage)--> content.js (页面 DOM 操作)
深度嗅探流程
popup.js 发送 DEEP_SNIFF 消息至 background.js
background.js 获取当前标签页 ID,注入 content.js 提取页面 HTML 与所有脚本 URL
- 后台通过
fetch 抓取脚本资源内容
- 执行多模式正则匹配,分类提取敏感信息
- 返回结果至
popup.js 渲染,支持导出
SQL 请求代理流程
- 用户在 SQL HackBar 构造请求
popup.js 发送 SQL_FETCH 消息至 background.js
background.js 使用 fetch 在后台发起请求(绕过前端 CORS)
- 返回响应数据至弹窗展示
安装与部署
环境要求
- 浏览器:支持 Manifest V3 的 Chromium 内核浏览器(Chrome 88+、Edge 88+ 等)
- 系统:Windows、macOS、Linux 均可
安装步骤
- 下载项目源码至本地目录(如
D:\HackerTools\XMCVE-WebRecon)
- 打开浏览器扩展管理页面:
chrome://extensions
- 开启右上角 “开发者模式”
- 点击 “加载已解压的扩展程序”,选择项目目录
- 固定扩展图标至工具栏,便于随时调用
如果你对渗透测试及其他安全技术感兴趣,欢迎来 云栈社区 与更多同行交流。
|