内容
# 二开 雪瞳 snoweyes-dual-probe-mc v1.0.0
> AI 驱动的渗透测试辅助工具 — Chrome 插件 + MCP Server 双端架构
[](https://github.com/szjlovezj/snoweyes-dual-probe-mcp)
[](LICENSE)
---
## 快速开始
### 方式一:一键安装(Windows)
双击 `install.bat`,自动完成 Node.js 检测、代码验证,并生成 Claude Code MCP 配置。然后把 `extension/` 目录加载到 Chrome 即可。
### 方式二:手动安装
**1. MCP Server(给 Claude Code 用)**
在你的 `~/.claude/mcp.json` 或 VS Code Claude 扩展的 `mcp.json` 中添加:
```json
{
"mcpServers": {
"snoweyes": {
"command": "node",
"args": ["你的路径/SnowEyes-v0.4.0/mcp-server/snoweyes-mcp.js"]
}
}
}
```
> ⚠️ `args` 要用**绝对路径**。安装脚本会自动帮你生成这段配置。
重启 Claude Code 或 VS Code 后生效。
**2. Chrome 扩展(给人用)**
1. Chrome 地址栏 → `chrome://extensions`
2. 开启右上角「开发者模式」
3. 点击「加载已解压的扩展程序」
4. 选择 `extension/` 目录
---
## 项目结构
```
SnowEyes-v0.4.0/
├── install.bat ← 一键安装(Windows)
├── package.json ← npm 包定义
├── LICENSE ← MIT
├── README.md
├── COMPARISON.md ← 原版 vs 增强版 对比
├── CHANGELOG.md ← 版本变更记录
│
├── mcp-server/ ← MCP Server(v0.4.0 新增)
│ ├── snoweyes-mcp.js ← 主入口(9个MCP工具)
│ ├── lib/
│ │ ├── scanner.js ← 核心扫描引擎
│ │ ├── classify.js ← 六维智能分析
│ │ ├── rules.js ← 30+正则规则 + 25条指纹
│ │ ├── fetcher.js ← HTTP请求 + 缓存 + 并发控制
│ │ ├── frameworks.js ← 框架探隐引擎
│ │ └── dict.js ← 路径字典 + 参数导出
│ ├── dicts/ ← 8个字典(27,699条)
│ └── test/ ← 测试用例
│
└── extension/ ← Chrome 插件
├── manifest.json ← MV3 配置
├── content/content.js ← 页面扫描引擎
├── popup/
│ ├── popup.html/js/css ← UI + 智能分析
│ ├── popup-enhance.js ← Packet弹框 + API标签
│ ├── popup-fwprobe.js ← 框架探隐面板
│ └── framework-dicts.js← 编译字典
├── background/
│ └── background.js ← Service Worker
└── snow_x25.js ← Vue Router 提取脚本
```
---
## MCP 工具(9个)
| 工具 | 说明 | 关键参数 |
|------|------|---------|
| `snoweyes_scan` | 核心扫描 | url, urls[], cookie?, autoDiscover?, scanResponses? |
| `snoweyes_scan_content` | 文本扫描 | content, label?, baseUrl? |
| `snoweyes_fingerprint` | 指纹识别 | url, cookie? |
| `snoweyes_probe` | 框架探隐(列URL) | url, fingerprints[], cookie? |
| **`snoweyes_probe_exec`** | **探隐+并发探测** | url, fingerprints[], cookie?, concurrency, probeMethod(ALL/GET/POST) |
| `snoweyes_dict` | 路径字典 | url, cookie? |
| `snoweyes_params` | 参数导出 | url, cookie? |
| `snoweyes_cache` | 缓存状态 | — |
| `snoweyes_history` | 扫描历史 | action?(list/clear) |
---
## 输出结构
`autoDiscover=true` 模式下,输出包含:
```json
{
"url": "https://target.com/index",
"status": 200,
"scriptUrlsFound": 13,
"scriptUrlsScanned": 12,
"iframesScanned": 1,
"sections": {
"域名": { "count": 38, "items": [...] },
"页面路由": { "count": 3, "items": [...] },
"API接口(绝对路径)": {
"items": [{
"path": "/system/user/resetPwd",
"method": "POST",
"level": "A", // A/B/C/D 四级
"feature": "认证", // 12类语义标注
"contentType": "application/json",
"params": "key=value",
"contextConfidence": "high"
}]
},
"API接口(相对路径)": {...},
"用户名密码" / "手机号码" / "邮箱" / "身份证号" / "ID密钥" /
"JWT Token" / "Iframe" / "Vue路由" / "JS文件" / "JS库" ... 共26+板块
},
"fingerprints": ["RuoYi", "jQuery", "Bootstrap"],
"highValue": [...], // 高价值发现摘要
"authHints": [...], // 鉴权线索
"packetSamples": [ // Raw/curl/Burp 三格式
{ "path": "/api/user", "method": "POST", "curl": "curl ...", "burp": "..." }
],
"apiResponses": { // scanResponses=true 时
"statusSummary": {
"🟢 ACCESSIBLE": 12,
"🔴 FORBIDDEN": 2,
"⚫ NOT_FOUND": 1
},
"all": [{
"path": "/api/user",
"status": 200,
"statusCategory": "🟢 ACCESSIBLE",
"apisFromHtml": [...] // HTML响应二次提取
}]
},
"scanHistory": { // 历史对比(MD5)
"changed": true,
"newApis": [...],
"removedApis": [...]
}
}
```
---
## 与 Playwright MCP 联动
```
1. browser_navigate → 打开目标并登录
2. browser_run_code_unsafe → 取 Cookie
3. snoweyes_scan(url, cookie, autoDiscover=true, scanResponses=true) → 全量扫描
4. snoweyes_probe_exec(url, fingerprints=["RuoYi"], cookie=..., probeMethod="ALL") → 一步探测
5. 对发现的 A/B 级 API 用 Playwright 发请求验证
```
---
## 核心设计
- **六维智能分析**:method推断、ABCD四级、12类feature标注、content-type推断、参数提取、第三方库识别
- **四层路径提取**:正则匹配 + DOM解析 + iframe穿透 + autoDiscover JS扫描
- **错误感知**:网络错误分 TIMEOUT/DNS/SSL,API响应分 ACCESSIBLE/FORBIDDEN/NOT_FOUND
- **状态感知**:自动检测登录页(未传Cookie警告)、API降级告警(Cookie过期检测)
- **框架探隐**:RuoYi/SpringBoot/ThinkPHP 专属字典 + 通用路径暴力探测
- **GET+POST 双探**(v1.0.0):同一端点同时发 GET+POST,通过 bodySize 对比自动识别假 200
---
## 系统要求
- **MCP Server**:Node.js ≥ 16.0(零 npm 依赖,纯内置模块)
- **Chrome 扩展**:Chrome ≥ 88(支持 Manifest V3)
- **Claude Code**:任意版本
---
## 联系方式
- **GitHub**:https://github.com/szjlovezj/snoweyes-dual-probe-mcp
- **Email**:1195014535@qq.com
有问题、建议或合作意向,欢迎提 Issue 或直接邮件联系。
---
## License
MIT — 详见 [LICENSE](LICENSE)。
## 免责声明
本工具仅供授权的安全测试和学术研究使用。使用者应遵守当地法律法规,并获得被测系统的明确书面授权。作者不对任何未授权使用造成的后果承担责任。
## 注意事项
扩展端"网站解析"面板依赖第三方免费 API(api.mir6.com 域名权重查询、cn.apihz.cn ICP 备案查询)。`extension/background/background.js` 中已内置免费 API Key,如调用超额请自行前往对应平台注册替换。