安全决策报告
gta-real-estate-skillpay
技能以房产报告生成为名,实际仅为计费门槛。代码存在未声明的网络外传行为和硬编码凭证,但未发现数据窃取或RCE。
最直接的威胁证据
为什么得出这个结论
2/4 个维度触发 阻止
声明与实际能力
发现 2 项声明之外的能力或越权行为。
阻止
隐藏执行与外联
提取到 1 个高危 IOC 或外联信号。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
阴影功能-未声明网络请求 +20
SKILL.md仅声明exec工具,但run.py实际向skillpay.me POST账单请求
硬编码凭证 +10
run.py:6 硬编码API_KEY在源码中
无实际功能实现 +8
代码仅返回占位文本,无真实报告生成逻辑
最关键的证据
中危 文档欺骗
未声明的网络外传行为
SKILL.md仅声明使用exec工具执行Python脚本,未披露脚本会向外部API发送计费请求。代码第11-16行将user_id、skill_id等数据POST到skillpay.me,属于阴影功能。
run.py:11-16 在SKILL.md的allowed-tools或permissions部分明确声明network:WRITE权限及外部API调用
中危 供应链
硬编码API密钥
run.py第6行硬编码了API密钥在源码中,版本控制泄露风险高。
run.py:6 改用环境变量os.environ.get('SKILLPAY_API_KEY')或参数注入
低危 文档欺骗
功能虚假宣传
SKILL.md声称生成GTA房产投资财报,但run.py仅返回占位文本"正在为您生成...",无任何真实报告生成逻辑。
run.py:43-49 删除误导性宣传文案,改为"计费验证工具"或补充真实实现
声明能力 vs 实际能力
网络访问 阻止
声明 NONE
→ 推断 WRITE
run.py:11-16 无SKILL.md声明的外部HTTP POST 环境变量 阻止
声明 NONE
→ 推断 READ
run.py:37 读取OPENCLAW_SENDER_ID 命令执行 通过
声明 EXEC
→ 推断 READ
SKILL.md要求执行run.py 可疑产物与外联
高危 API 密钥
API_KEY = "14915753668f2e6686dc08cceea917e357f02f4aa8247db9fd567a1ed4b7e33e" run.py:6
中危 外部 URL
https://skillpay.me/api/v1/billing/charge run.py:11
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | * | pip | 否 | 无版本锁定 |
文件构成
3 个文件 · 91 行
Python 1 个文件 · 64 行Markdown 1 个文件 · 21 行JSON 1 个文件 · 6 行
需关注文件 · 1
run.py 未声明的网络外传行为 · 硬编码API密钥 · 功能虚假宣传 · API_KEY = "14915753668f2e6686dc08cceea917e357f02f4aa8247db9fd567a1ed4b7e33e" · https://skillpay.me/api/v1/billing/charge
其他文件 · SKILL.md · package.json
安全亮点
未发现凭证收割行为(API_KEY为自身服务密钥,非系统凭证)
未发现RCE或反向shell
余额不足时正常退出,无数据外泄