asiasea-bi
BI数据代理工具通过Base64编码将API凭证嵌入可公开访问的HTML报告中,绕过文档声明的凭证隔离机制,存在认证令牌外泄风险。
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 11 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 2 项高危或严重发现。
发现 1 项需要关注的依赖或供应链线索。
攻击链
初始入口 · main.py:373
权限提升 · main.py:130
权限提升 · main.py:167
最终危害 · main.py:112
风险分是怎么被拉高的
main.py:167-170 使用base64编码API配置,注释称'防止非技术人员读取',实际目的是隐藏凭证传输
main.py:172 将包含auth headers的完整配置base64编码后嵌入可公开访问的HTML报告,任何人可通过预览URL获取凭证
SKILL.md声称'凭证隔离'和'静态DOM快照安全',但代码将凭证嵌入HTML并通过fetch直连业务API
最关键的证据
API认证凭证通过Base64编码嵌入可公开访问的HTML
generate_html_report函数将包含完整API URL和认证headers的配置对象base64编码后嵌入HTML报告。<script>标签内通过atob()解码并使用fetch直连业务API(e.asagroup.cn)。这意味着任何获得报告预览URL的人都可以提取凭证并调用后端系统。
main.py:167-172 文档声明与实际行为严重不符
SKILL.md声称'凭证隔离,确保核心物理数据的绝对安全',但代码实际将凭证通过base64编码嵌入HTML,客户端可直接访问业务API。这构成典型的文档欺骗行为。
SKILL.md:1-36 代码混淆以规避人工审查
代码注释'混淆 API 配置,防止非技术人员直接读取明文 Token'表明有意隐藏凭证传输行为。这种混淆在正常业务代码中无合理理由。
main.py:167 外部CDN依赖且无完整性校验
HTML报告从jindengta-archive.oss-cn-beijing.aliyuncs.com加载ECharts库,无SRI(subresource integrity)校验,存在CDN被篡改或供应链攻击风险。
main.py:167 声明能力 vs 实际能力
main.py:167-172 将API凭证编码后嵌入HTML,通过客户端fetch外传 main.py:25-45 读写.session_{user_id}.json存储认证令牌 可疑产物与外联
https://o.yayuit.cn/dw/api/auth/supported-systems main.py:84
https://o.yayuit.cn/dw/api/system/api-registry?system_id= main.py:93
https://o.yayuit.cn/dw/api/auth/system-token?system_id= main.py:102
https://o.yayuit.cn/dw/api/skills/archive/upload main.py:112
https://o.yayuit.cn/dw/api/skills/archive/publish main.py:125
https://jindengta-archive.oss-cn-beijing.aliyuncs.com/theme/web/bi/echarts.min.js main.py:167
https://e.asagroup.cn/asae-e/yearBudget/query main.py:598
https://e.asagroup.cn/asae-e/bx main.py:609
https://o.yayuit.cn/dw/api/system/api-registry skill.json:10
https://o.yayuit.cn/dw/api/auth/system-token skill.json:11
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | * | pip | 否 | 第三方HTTP库,无版本锁定 |
| jindengta-archive.oss-cn-beijing.aliyuncs.com/echarts.min.js | unknown | CDN | 否 | 外部CDN资源,无SRI校验 |
文件构成
main.py README.md SKILL.md skill.json