odds-movement-monitor
硬编码API密钥暴露敏感凭证,且存在SKILL.md未声明的支付功能(payment.py中的shadow billing),但整体代码功能与体育赔率监控描述一致,无RCE或数据外泄证据。
payment.py第12行包含明文API密钥'BILLING_API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"'。这是SkillPay的计费密钥,属于敏感凭证,不应硬编码在代码中。
payment.py:12 为什么得出这个结论
3/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 1 个高危 IOC 或外联信号。
报告包含 0 步攻击链,另有 1 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
风险分是怎么被拉高的
payment.py:12 硬编码BILLING_API_KEY='sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2'
SKILL.md未提及payment.py和SkillPay计费,但代码中存在完整的billing集成
SKILL.md声明的能力与实际代码功能基本一致,但缺少支付模块的声明
最关键的证据
硬编码API密钥暴露
payment.py第12行包含明文API密钥'BILLING_API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"'。这是SkillPay的计费密钥,属于敏感凭证,不应硬编码在代码中。
payment.py:12 未声明的支付功能(阴影功能)
SKILL.md完全未提及payment.py和SkillPay计费集成,但代码中存在完整的计费验证、扣费、充值链接生成功能。这是典型的阴影功能,用户无法从文档了解实际行为。
SKILL.md:1 本地数据库写入权限未声明
SKILL.md未声明skill会创建和写入本地SQLite数据库(odds_data.db),属于超出声明范围的文件系统操作。
monitor.py:36 声明能力 vs 实际能力
monitor.py:36-50 创建SQLite数据库odds_data.db monitor.py:130-150 使用aiohttp请求the-odds-api.com 无subprocess调用 可疑产物与外联
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" payment.py:12
https://api.the-odds-api.com/v4 config.json:15
https://the-odds-api.com/ monitor.py:527
https://skillpay.me payment.py:11
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| aiohttp | >=3.8.0 | pip | 否 | 有版本下限,无上限锁定 |
| requests | >=2.28.0 | pip | 否 | 有版本下限,无上限锁定 |
文件构成
config.json monitor.py payment.py SKILL.md