可疑 — 风险评分 45/100
上次扫描:4 小时前 重新扫描
45 /100
file-transfer-thru-local-workspace
通过网页上传/下载文件到本地OpenClaw workspace,技能浏览下载
文件传输技能存在网络暴露和认证绕过风险,服务监听在0.0.0.0且支持无认证模式,允许未授权文件操作和技能包下载
技能名称file-transfer-thru-local-workspace
分析耗时47.2s
引擎pi
ClawHub file-transfer-thru-local-workspace v3.1.1 by chengwang86
📥 262
ClawHub 判定 可疑 dangerous_execllm_suspiciousvt_suspicious
谨慎使用
1. 强制要求认证,不允许无认证模式;2. 监听地址改为127.0.0.1而非0.0.0.0;3. 限制技能包浏览范围;4. 添加IP白名单或绑定到本地回环接口

攻击链 3 步

入口 扫描发现开放端口15170的服务
src/upload-server.js:510
提权 利用无认证模式访问上传API
src/upload-server.js:250
影响 上传恶意文件或删除任意文件
src/upload-server.js:300

安全发现 4 项

严重性 安全发现 位置
中危
服务暴露在公网监听 敏感访问
upload-server.js在0.0.0.0:15170监听端口,任何可网络可达的客户端均可访问上传/下载/删除API,存在未授权访问风险
server.listen(PORT, '0.0.0.0', () => {...})
→ 改为127.0.0.1或localhost监听,仅允许本地访问
src/upload-server.js:510
中危
认证机制与文档不符 文档欺骗
文档描述'智能认证适配',但代码允许AUTH_VALUE为空导致完全无认证,install.sh:46-48明确处理无认证场景
AUTH_VALUE=""  # 当未找到配置时为空
→ 强制要求有效认证,不允许无认证模式运行
install.sh:46
中危
技能包浏览可访问所有技能目录 敏感访问
getSkillsList()函数读取workspace下所有技能目录,可打包下载任意技能内容,可能导致其他技能的clawhub.json等敏感配置泄露
const SKILLS_DIR = path.join(WORKSPACE, 'skills');
→ 限制技能浏览范围或需要更高权限验证
src/upload-server.js:68
低危
使用grep解析JSON配置文件 供应链
install.sh使用grep/cut解析JSON而非jq等专用工具,可能因格式差异导致解析错误或意外值提取
GATEWAY_TOKEN=$(grep -o '"token": *"[^"]*"' ...)
→ 使用jq或node -e解析JSON更可靠
install.sh:31
资源类型声明权限推断权限状态证据
文件系统 WRITE WRITE ✓ 一致 package.json permissions 声明与实际一致
网络访问 listen ADMIN ✗ 越权 upload-server.js:510 监听0.0.0.0而非localhost,暴露风险超出预期
命令执行 NONE WRITE ✗ 越权 install.sh:60使用nohup/env启动后台进程,uninstall.sh:23使用pkill
1 项发现
🔗
中危 外部 URL 外部 URL
http://127.0.0.1:15170/
SKILL.md:228

目录结构

7 文件 · 62.1 KB · 1904 行
HTML 1f · 688L JavaScript 1f · 511L Markdown 1f · 389L Shell 2f · 183L JSON 2f · 133L
├─ 📁 src
│ ├─ 📜 upload-server.js JavaScript 511L · 19.7 KB
│ └─ 📄 upload.html HTML 688L · 22.4 KB
├─ 📋 clawhub.json JSON 95L · 2.4 KB
├─ 🔧 install.sh Shell 138L · 5.1 KB
├─ 📋 package.json JSON 38L · 885 B
├─ 📝 SKILL.md Markdown 389L · 9.4 KB
└─ 🔧 uninstall.sh Shell 45L · 2.2 KB

安全亮点

✓ 使用path.basename()防止路径遍历攻击
✓ 使用spawn执行zip命令而非直接eval shell字符串
✓ 有基本的Token认证机制(虽然可能为空)
✓ 文件操作限定在uploads目录内