幻影(Phantom)SRC漏洞挖掘辅助工具
Tips:由于这个项目刚刚开始,所以可能会有一些bug,师傅们可以提Issues哦,我们都会尽快处理的\~
一款面向 SRC 场景的浏览器扩展),自动收集页面及相关资源中的敏感信息与可疑线索,支持基础扫描、深度递归扫描、批量 API 测试及结果导出与自定义正则配置。
特性概览
- 一键基础扫描:自动提取页面内的 API、URL、域名、邮箱、手机号、路径、参数、注释、多类 Token/Key 等
- 深度递归扫描:多层链接/资源爬取,支持并发、超时配置,并在新窗口中运行,不阻塞当前操作
- 批量 API 测试:对扫描到的分类条目进行 GET/POST 批测,并发与超时可配置,结果支持复制
- 导出能力:支持 JSON 与 Excel(.xls XML 格式)两种导出
- 自定义正则:内置丰富默认规则,可在「设置」中按分类自定义正则并即时生效
- Cookie 支持:可一键获取当前站点 Cookie 并保存,便于需要鉴权的请求场景
- 去重与过滤:内置增强过滤器(域名/邮箱/手机号/API),减少误报
- 自动与增量:页面加载、DOM 变化与定时策略触发静默扫描;深度扫描过程中分层/分批实时合并与展示
安装
- 打开 Chrome/Edge 等 Chromium 内核浏览器,访问 扩展程序
- Chrome:chrome://extensions
- Edge:edge://extensions
- 右上角开启「开发者模式」
- 点击「加载已解压的扩展程序」
- 选择本项目文件夹(包含 manifest.json 的目录)
安装完成后,点击工具栏图标打开弹窗界面(popup.html)。
权限说明
manifest_version: 3
host_permissions: <all_urls>
- activeTab / tabs / windows:读取当前页信息、打开深度扫描窗口
- storage:保存扫描结果、深度扫描状态与自定义配置
- cookies:获取并保存当前站点 Cookie(用于请求鉴权)
- offscreen:在需要时使用离屏文档执行任务(offscreen.html/offscreen.js)
- declarativeNetRequest / declarativeNetRequestWithHostAccess:保留/扩展能力(规则式网络处理)
- content_scripts:注入扫描逻辑(content.js 及扫描模块)
所有数据默认保存在浏览器本地(chrome.storage.local),不对外发送。
快速上手
- 基础扫描
- 深度递归扫描
- 批量 API 测试
- 导出数据
- 设置(Cookie与正则)
- 切换至「设置」页
- Cookie:点击获取当前站点 Cookie 或手动粘贴保存
- 正则:按分类编辑后「保存配置」即时生效;可「恢复默认」
支持的数据分类(部分)
- API:absoluteApis
- 网络与资源:urls、domains、subdomains、ports、paths、parameters、jsFiles、cssFiles、images、audios、videos、vueFiles、githubUrls
- 身份与联络:emails、phoneNumbers、ipAddresses、companies
- 安全敏感:sensitiveKeywords、credentials、jwts、bearerTokens、basicAuth、authHeaders、wechatAppIds、awsKeys、googleApiKeys、githubTokens、gitlabTokens、webhookUrls、idCards、cryptoUsage
- 表单信息:forms、inputFields、hiddenFields
- 注释:comments
说明:实际输出在展示前做去重、数量限制与过滤,避免噪音。
深度扫描原理与限制
- 原理
- 从当前页初始结果中收集候选 URL(JS/HTML/API)
- 分层递归(最大深度可配),队列+并发 worker 处理,URL 内容经 PatternExtractor 提取
- 通过 background.js 代发请求(runtime.sendMessage: makeRequest),处理跨域、超时、类型与文本提取
- 应用增强过滤器(域名/邮箱/手机号与 API),结果实时合并到 deepScanResults,并回显与持久化
- 仅同域扫描(same-domain 策略),避免越权和噪音
- 配置建议
- 最大深度 2\~3,避免过度抓取
- 并发 5
16 之间;超时 510 秒 - 若目标需要授权访问,请先在设置中保存 Cookie
- 已做优化
- URL 内容缓存、正则缓存、分层显示更新、Set 去重、分批持久化
数据持久化与清理
- 存储键(以域名为维度)
- {hostname}__results:基础/最终结果
- {hostname}__deepResults:深度扫描结果
- {hostname}__deepBackup:深度结果备份
- {hostname}__deepState:深度扫描运行状态(深度、并发、已扫 URL 等)
- {hostname}__lastSave:最后保存时间戳
- lastScan_{url}:自动扫描节流用
- 清理方式
- 弹窗「扫描」页的「清空结果」用于当前域数据的清理
- 代码包含全量清理逻辑(SettingsManager.clearAllData),默认界面未开启全量清空按钮
自定义正则(Settings)
- 保存位置与生效链路
- 保存 phantomRegexConfig 与 regexSettings 两份,保证兼容
- PatternExtractor 在扫描/深度扫描前会 load/update 自定义规则并即时生效
- 可配置项(示例)
- API / 域名 / 邮箱 / 手机号 / 敏感信息 / IP / 路径 / JWT / Bearer / Basic / Authorization / 微信AppID / AWS / Google API Key / GitHub/GitLab Token / Webhook / 加密调用 / GitHub 链接 / Vue 文件 / 公司名称 / 注释 等
- 校验
- 保存前会对每条正则进行语法校验,失败会提示并中断保存
目录结构(摘录)
- manifest.json:扩展清单(MV3)
- background.js:后台脚本(代理请求、结果存储消息处理等)
- content.js:页面内容脚本(自动/增量扫描、提取与过滤)
- popup.html:扩展弹窗 UI(扫描、深度扫描、API 测试、设置、关于)
- src/main.js:应用入口与模块装配(ILoveYouTranslucent7)
- src/scanner/
- PatternExtractor.js / ContentExtractor.js / BasicScanner.js / DeepScanner.js / DeepScanWindow.js
- src/api/
- ApiTester.js / TestWindow.js 等
- src/ui/
- DisplayManager.js(结果展示)
- src/utils/
- ExportManager.js(JSON/XLS 导出)
- SettingsManager.js(Cookie/正则配置、全量清理)
- filters/
- domain-phone-filter.js(域名/邮箱/手机号增强过滤)
- api-filter.js(API 路径增强过滤)
常见问题
- 扫描无结果或很少
- 目标为系统页(chrome://、chrome-extension://)会被跳过
- 页面首扫后 5 分钟内静默节流;可手动点「开始扫描」
- 规则过严或错误:检查设置中的自定义正则;可恢复默认
- 深度扫描不生效/请求失败
- 站点需要鉴权:先保存 Cookie 后再执行
- 并发过高或超时过短:适度调小并发、调大超时
- Excel 打不开
- 导出为 .xls可直接用 Excel 打开;若提示编码,选择 UTF-8
- 性能建议
- 复杂页面建议使用默认节流与深度参数,避免过高并发导致浏览器卡顿
安全与合规
- 工具仅用于授权范围内的安全测试与 SRC 场景自查,请勿用于非法用途
- 结果保存在本地 storage,不会自动对外发送
- 在进行深度扫描与批量请求时,请遵循目标站点策略与相关法律法规
版本与致谢
- 版本:1.6.6
- 作者:Phantom&yihuo&Xuan8a1
- 站点:
- 开源地址:https://github.com/Team-intN18-SoybeanSeclab/Phantom/
- 致谢个人/团体:D3f4ultX、findsomething、SnowEyes
- 致谢媒体:隼目安全、知攻善防实验室