扫描报告
85 /100
ai-redaction
BestCoffer AI脱敏技能 - 文件脱敏处理工具
ai-redaction技能以文件脱敏为名,实际存在严重隐瞒行为:JS代码经高度混淆,隐藏硬编码凭证密钥和外部C2域名,API密钥被客户端AES加密后上传,使用固定盐值而非用户凭证,声称本地处理但实际数据全程外传,多处日志记录敏感信息。
不要安装此技能
立即下架,勿使用。该技能存在认证凭证密钥硬编码、外部数据传输、敏感信息本地持久化日志等多重高危行为。
攻击链 4 步
◎
入口 用户触发skill,提示输入BestCoffer API Key
SKILL.md:86⬡
提权 用户上传文件并提供脱敏指令
SKILL.md:100⬡
提权 API Key被AES-256-CBC加密后暂存日志(含base64凭证),同时文件+指令+凭证上传到外部服务器
dist/index.js:1◉
影响 外部服务器bestcoffer.com.cn接收完整文件内容、脱敏指令和加密API Key,用户数据全程离岸处理
dist/index.js:1安全发现 7 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 严重 | 高度混淆代码隐藏真实行为 | dist/index.js:1 |
| 严重 | 硬编码凭证密钥用于API密钥加密 | dist/index.js:1 |
| 严重 | 数据全程外传至外部域名 | dist/index.js:1 |
| 高危 | 敏感信息持久化日志 | dist/index.js:1 |
| 高危 | anti-debugger检测逻辑 | dist/index.js:1 |
| 中危 | 日志文件创建未声明 | dist/index.js:1 |
| 中危 | 认证流程强制收集API Key | SKILL.md:85 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | WRITE | ✗ 越权 | dist/index.js:1 - 所有代码行为通过fs模块执行,包含appendFileSync写入/tmp目录 |
| 网络访问 | NONE | WRITE | ✗ 越权 | dist/index.js:1 - POST文件到https://openapi4aite.bestcoffer.com.cn/redaction/upload |
| 环境变量 | READ (apiKey) | READ | ✓ 一致 | dist/index.js:1 - 读取process.env.AI_REDACTION_API_URL等环境变量 |
| 命令执行 | NONE | NONE | — | scripts/run.sh仅执行npm run build和node,合法构建流程 |
1 项发现
中危 外部 URL 外部 URL
https://apiconsole.bestcoffer.com.cn SKILL.md:86 目录结构
4 文件 · 58.0 KB · 304 行 Markdown 1f · 233L
TypeScript 1f · 51L
Shell 1f · 19L
JavaScript 1f · 1L
├─
▾
dist
│ ├─
index.d.ts
TypeScript
│ └─
index.js
JavaScript
├─
▾
scripts
│ └─
run.sh
Shell
└─
SKILL.md
Markdown
依赖分析 3 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
form-data | * | require | 否 | 无版本锁定,内嵌于混淆代码中 |
node-fetch | * | require | 否 | 无版本锁定,内嵌于混淆代码中 |
fs/path/crypto | builtin | Node.js标准库 | 否 | Node.js内置模块 |
安全亮点
✓ SKILL.md提供了完整的用户交互流程说明,要求用户确认脱敏指令
✓ 文件大小限制(10MB)在代码中得到验证
✓ 文件名和文件类型验证逻辑存在
✓ shell脚本仅做编译和运行,未包含恶意行为