PHP 代码注入漏洞总结 (Froxlor CVE-2026-4229) 漏洞概述 漏洞名称:PHP Code Injection via Unescaped Single Quotes in userdata.inc.php Generation (MysqlServer API) CVE ID:CVE-2026-4229 严重程度:Critical (9.1/10) 受影响版本:Froxlor <= 2.3.5 修复版本:2.3.6 原理: Froxlor 的 函数在将字符串值写入单引号 PHP 字符串字面量时,未对单引号进行转义。当具有 权限的管理员添加或更新 MySQL 服务器时,特权用户参数(privileged_user)未经输入验证直接写入 。由于该文件在每次请求时都会被包含,攻击者可以注入任意 PHP 代码,并在每次页面加载时以 Web 服务器用户身份执行。 影响范围 权限要求:需要具有 权限的管理员权限。 攻击向量:网络 (Network)。 影响: 完全服务器沦陷:以 Web 服务器用户身份执行任意命令。 数据泄露:读取所有托管客户数据、数据库凭证、TLS 私钥。 横向移动:使用 中存储的凭证访问所有 MySQL 数据库。 持久后门:注入的代码在每次请求时执行。 拒绝服务:损坏的 PHP 代码可能导致整个站点崩溃。 修复方案 1. 升级版本:升级至 Froxlor 2.3.6 或更高版本。 2. 代码修复:在 中,在将值插入单引号 PHP 字符串之前,转义单引号。由于单引号字符串中仅解释 和 ,因此两者都需要转义。 3. 替代方案:对除密码外的所有字符串值应用与密码相同的 nowdoc 语法,以提供完全的注入安全性。 4. 防御纵深:考虑在 和 中为 和 字段添加输入验证。 POC 代码 Step 1: 通过 MysqlServer.add API 注入 PHP 代码 Step 2: 触发代码执行 (注: 输出将出现在响应中,或者可以通过带外方法捕获用于盲执行)