如果你在用 Quix Page Builder(Joomla 上装机量最大的拖拽式页面构建器之一),请先做一件事:检查版本并升级到 6.3.4。安全公司 mySites.guru 的 Phil Taylor 在对客户站点所依赖扩展的例行研究中,发现了 Quix 的一个未认证 SQL 注入漏洞(CVE-2026-58078,Joomla CNA 定级 CVSS 4.0 评分 8.7,高危),受影响范围为 6.2.0 及所有更早版本。尽管漏洞已在年中披露,mySites.guru 最近仍在公开提醒——因为还有大量站点没有更新。这个漏洞值得中文用户专门了解,不仅因为 Quix 的用户基数,更因为它演示了"数据库被读走"这种最容易被低估的入侵形态。

漏洞原理:三行代码的错误

问题出在 Quix 的一个前端 element 端点上:它把匿名请求中的 article id 参数直接放进数据库查询,没有先转换为数字类型。这意味着任何匿名访客——不需要登录、不需要任何权限——都可以构造请求读取数据库中的任意表:用户账户和密码哈希、Joomla API 密钥(拿到它等于绕过登录直接调用 API)、草稿内容、表单提交的个人数据、电商订单。

更"贴心"的是,这是 error-based(报错型)注入而非盲注:端点把数据库错误信息直接回显在响应里,攻击者每次请求就能取回一个值,无需任何猜测。配合 sqlmap 这类从 2006 年起就已成熟的自动化工具,拖走一个整库只是一条命令加几分钟等待。披露者特别强调了一点,值得转述:AI 并没有让 SQL 注入变得更危险——这类攻击二十年前就已完全自动化,别再抱有"没人会 bother 手动拖库"的侥幸,没有人手动拖库,他们把工具指过来就走了。

为什么"恢复备份"救不了你

这是本次披露里最有科普价值的部分。数据库读取不写入任何东西:没有文件改动、没有新增管理员、没有 webshell、没有任何完整性检查能发现的痕迹。攻击者拿走的是一份副本,原站完好无损。所以:恢复备份无法撤销已发生的数据泄露,更新补丁只能阻止下一次复制,防不住已经发生的这一次。正确的事后动作只有两件:轮换数据库中所有凭据(尤其是密码哈希可能被离线破解的用户,撞库风险真实存在),以及按合规要求通知数据当事人。对企业站点来说,这是需要上报的安全事件,不是一次例行维护。

版本修复时间线与当前建议

修复过程本身是个值得点赞的负责任披露案例:mySites.guru 共报告了 7 个安全问题,ThemeXpert 在 6.2.1 修复了其中的 6 个(含本次 SQL 注入),次日发布的 6.2.2 修复了第 7 个(未过滤的 CSS ID/Class)。随后厂商又连发三个安全版本,当前最新的 6.3.4 修复了访客访问 Quix 设置与受限页面、编辑者权限代码执行、Joomla 文章文本脚本注入等问题,并包含此前所有修复。所以正确的目标版本是 6.3.4,而不是只修了 SQL 注入的 6.2.x。

给中文用户的行动清单

用 Quix 的站点:立即升级到 6.3.4。后台"扩展-更新"或从 ThemeXpert 重新下载安装。升级前照例先备份(顺手一提,J!Awards 2026 最受欢迎扩展正是备份类的 Akeeba Backup)。

不确定自己是否在用:后台"扩展-管理"搜索 Quix,或直接检查你的页面是不是用拖拽构建的。Quix 有免费版和 Pro 版,两条产品线都在受影响范围内。

曾经或正在运行旧版本的站点:假设数据库可能已被读取,建议轮换超级用户与全体管理员的密码、检查并重置 Joomla API Token、审计用户列表中是否有异常账户。

所有 Joomla 开发者:这是又一个"参数未做类型转换直接进查询"的教科书案例。请检查自己扩展里的每一处数据库查询——Joomla 的数据库 API 提供了参数绑定和类型转换,用它们不是可选项。

总结

一个未做整数转换的参数,让任意匿名访客与整个数据库之间只隔一个 HTTP 请求。Quix 的教训对两方都成立:站长要接受"被读走不需要痕迹,恢复备份不是解药"这个事实,把更新补丁当作安全底线而非可选项;开发者则要在写每一行查询时提醒自己,匿名请求里的任何参数都不可信。检查一下你的 Quix 版本,今晚就升。

作者: 樱木花道

Joomla程序员,从J1.5到J6.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前