在日常的渗透测试工作中,你是否也厌倦了这样的场景?为了寻找一个接口,需要手动翻阅数不清的JavaScript文件;为了检查目录泄漏,不得不在不同扫描工具间来回切换。这种依赖手工的操作不仅繁琐,效率低下,还容易遗漏关键信息。
为了提高效率,我开发了一款名为 VulnRadar 的 Chrome 扩展。它的目标很简单:将那些零散的、需要手动触发的安全检测功能,直接集成到你的浏览器里,让自动化扫描和实时监控成为浏览网页时的“被动技能”,从而显著提升红队打点和渗透测试的效率。
功能概览与界面
插件自带一个配置界面,你可以在这里控制各个模块的开关:

检测结果会以一个悬浮面板的形式,实时展示在网页的右上角,方便你随时查看:

核心功能模块详解
1. JS端点发现
这是我个人使用频率最高的模块,尤其适合配合 Fuzz 或信息收集工具进行深度探测。它能够自动提取当前页面加载的所有 JavaScript 文件中的 API 端点,并执行一系列自动化检测:
- 端点提取:支持多种模式匹配,包括引号包裹的路径、
/api/ 前缀、版本路径(如 /v1/、/v2/)等。
- 并行测试:使用
Promise.all 对所有发现的端点进行并发可访问性测试,并设有 5 秒超时控制,避免长时间卡顿。
- 敏感数据检测:自动识别 HTTP 响应中是否包含 API 密钥、访问令牌、密码、身份证号等敏感信息。
- 一键测试:每个接口旁边都提供“测试”按钮,点击即可在新标签页中直接打开,方便快速验证。
2. 敏感目录发现
这个模块负责扫描目标站点上常见的敏感路径和配置文件泄漏点,覆盖范围包括:
- API 文档:如 Swagger UI、API Docs 等。
- 监控端点:如 Spring Actuator、Jolokia、Metrics 等。
- 版本控制泄露:如
.git、.svn、.DS_Store 目录或文件。
- 备份文件:如
www.zip、backup.tar.gz 等常见备份包。
- 中间件管理:如 Tomcat Manager、Druid 监控、Nacos、XXL-Job 管理等控制台。
每个扫描路径都配置了相应的特征匹配规则,以减少误报。同样支持一键测试功能。
3. DOM XSS 检测
通过 Hook(钩子)技术,该模块能够实时监控页面中危险的 JavaScript “sink”函数:
- 监控函数:覆盖
innerHTML、outerHTML、eval、setTimeout、document.write 等常见危险函数。
- 污点追踪:检测流入这些函数的数据是否源自 URL 参数、Location Hash、Referrer 等用户可控的“危险源”。
- 模式识别:识别 URL 参数中是否包含
javascript:、onerror= 等典型的 XSS 特征。
- 实时告警:一旦发现被污染的数据流入危险函数,会立即在浏览器中弹窗提醒,让你第一时间定位问题。
4. 重定向漏洞检测
专门用于发现开放重定向(Open Redirect)漏洞,其检测逻辑相当细致:
- 双重检测:不仅检查参数名(如
redirect、url、next),同时分析参数值的特征。
- 智能解码:自动处理 URL 编码甚至双重编码的情况,确保能发现经过混淆的漏洞。
- 危险分级:根据匹配的强弱程度,将发现的问题分为高危、中危、低危三个等级。
- 协议识别:能够检测
javascript:、data: 等危险协议的重定向尝试。
- Payload 生成:自动生成多种用于测试绕过的 Payload(默认使用
baidu.com 作为安全测试域名)。
5. 跨域消息追踪
监控页面中发生的 postMessage 事件,适用于分析跨域通信的安全性:
- 记录消息的详细数据、来源域和时间戳。
- 具备智能过滤能力,能自动排除 Wappalyzer 等浏览器插件产生的干扰消息。
6. 原型污染检测
测试 URL 参数是否能够污染 Object.prototype,从而引发原型污染漏洞:
- 自动生成多种污染 Payload 并尝试注入。
- 检测污染是否成功,并报告存在脆弱性的参数名。
如何使用 VulnRadar
安装步骤
- 从项目仓库下载扩展文件。
- 打开 Chrome 浏览器,访问
chrome://extensions/。
- 开启右上角的“开发者模式”。
- 点击“加载已解压的扩展程序”按钮。
- 选择你存放扩展文件的目录即可完成安装。
操作说明
- 总开关:位于控制界面顶部,控制所有模块的自动扫描功能。关闭后,你可以像平常一样浏览网页,不会被任何扫描行为打扰。
- 模块控制:
- 立即测试:手动触发一次该模块的扫描。
- 自动开关:开启后,每次页面加载或导航时都会自动执行该模块的扫描。
- 结果查看:
- 浮动面板:页面顶部 macOS 风格的可拖动面板,支持调整大小和折叠/展开。
- 浏览器控制台:部分详细日志会使用
console.table() 进行格式化输出,便于分析。
- 扩展弹窗:点击扩展图标弹出的窗口会显示检测摘要和统计信息。
编码处理能力
重定向检测模块具备强大的编码识别能力:
- URL 编码:例如
http%3A%2F%2Fexample.com
- 双重编码:例如
%252F%252Fexample.com
模块会自动进行多层解码,并基于解码后的原始值进行漏洞判断。
性能优化措施
为了避免对浏览器性能造成过大影响,扩展在设计时做了以下优化:
- 并行请求:端点测试采用并发模式,大幅缩短等待时间。
- 超时控制:每个网络请求设有 5 秒超时,防止因个别无响应接口导致脚本挂起。
- 智能过滤:自动过滤掉像
delete、remove、destroy 这类危险的操作名,以及模板变量,减少不必要的干扰和误报。
需要注意的误报情况
没有工具是完美的,VulnRadar 在以下场景中可能会产生需要人工鉴别的结果:
- 重定向检测:某些参数的值虽然是 URL 格式,但仅仅是用于内部 API 地址传递,并非用户可控的重定向点,此类情况会被标记,需结合上下文判断。
- DOM XSS:某些实施了严格内容安全策略 (CSP) 的网站,可能会阻止我们的 Hook 代码执行,导致检测失效或漏报。
- 敏感目录:扫描出的某些路径可能是网站正常的业务接口,需要根据响应内容和网站功能进行综合分析。
后续开发计划
当前版本的功能已能满足日常渗透测试和信息收集的绝大部分需求。未来的迭代可能会考虑加入以下特性:
- 集成更多先进的 403/401 绕过技术。
- 支持用户自定义扫描规则和路径字典。
- 增加一键生成扫描报告并导出的功能。
- 进一步优化扩展的内存占用和运行时性能。
总结
VulnRadar 这款扩展的核心价值在于整合与自动化。它将渗透测试初期分散的、手动的信息收集动作,融合到了你的浏览环境之中,让你在“逛网站”的同时就完成了一轮基础的安全扫描。虽然它无法替代 Burp Suite、Nmap 这样的专业工具,但在快速资产发现、初步漏洞筛查方面,无疑是一个高效的“瑞士军刀”。
工具的本质是提升效率,希望 VulnRadar 能成为你安全工具箱中的一个得力助手。如果你在云栈社区或其他平台有更好的想法或建议,非常欢迎交流。
项目开源地址:https://github.com/Zacarx/VulnRadar
|