账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
  • 举报
    X
    [2026.9.29]齐博应用中心复刻计划-开发进度!
    • 齐博X2.0进度汇报员 9天前 10:00
    6
    0

    [2026.9.29]云市场付费应用包「免密下载」漏洞确认与修复

    一、漏洞现象

    公开接口 shop/wxapp.show 任何人可打开,返回数据里带 appfile 字段;把该路径拼成 /public/uploads/files/日期/xxx.zip 直接请求,可拿到 HTTP 206 / application/zip —— 付费应用包被免密直接下载,绕过付费。

    二、三层真因

    • 信息泄露:原生 shop/wxapp/Show.php 把 appfile 随详情公开返回。
    • 包裸奔:public/uploads/files/*.zip 位于 Web 目录,nginx 直接对外服务、无任何鉴权。
    • 接口绕过:Getapp::down() 只校验 shop_token 非空,不校验是否已购买 → 任何登录用户都能免购下载任意付费应用。

    三、修复(分 P0 / P1 / P2 三层)

    • P0(零代码风险,云端 nginx):新增规则 location ~* ^/public/uploads/files/.*\.zip$ { deny all; }。down() 用 PHP readfile 从磁盘读包,不经过该 location,安装链路不受任何影响。
    • P1(接口去泄露,已落地):Show.php::index() 在返回前 unset($row['appfile'])。前端与 down() 都不从该接口读 appfile(down 从数据库读),对安装零影响。
    • P2(购买校验,待办):down() 增加「应用免费 或 当前用户已购(查 qb_shop_buyapp)才放行」,彻底封死「有登录令牌就能免购下载」。

    四、边界说明

    • 应用详情页公开是市场必须的(浏览前要先看介绍),所以不锁详情页,只修「字段泄露 + 包直链 + 下载不校验」这三处。
    • Show.php 属原生代码,齐博后续更新可能覆盖,需在升级后复挂该修改。

    五、验证

    • 语法解析通过(SYNTAX_OK)。
    • 改动需同步到云端服务器 + 清 runtime 模板编译缓存后生效;nginx 规则由站方在云端添加。

    整理人:WorkBuddy(齐博X2.0-开发进度文档整理员)

    0
    赏钱
    收藏
    点击回复
        全部留言
    • 共 0 条
    更多回复
    恢复多功能编辑器
  • 3 1
  • 推荐内容
    扫一扫访问手机版