DedeCMS 后台标签代码执行漏洞(CVE-2018-7700,RCE代码执行)修复教程

张开发
2026/4/12 19:09:29 15 分钟阅读

分享文章

DedeCMS 后台标签代码执行漏洞(CVE-2018-7700,RCE代码执行)修复教程
一、漏洞说明该漏洞属于后台高危RCE远程代码执行漏洞漏洞编号CVE-2018-7700攻击者在登录后台后可通过构造恶意标签请求触发代码执行直接获取网站服务器控制权属于「最高危」后台漏洞危害极大登录后台即可Getshell。漏洞编号CVE-2018-7700漏洞类型RCE远程代码执行危害等级最高危影响版本DedeCMS V5.7 SP2 及以下全版本含各类衍生版本漏洞文件/tag_test_action.php漏洞场景后台标签测试功能中程序未对标签参数进行严格过滤直接将参数代入eval()危险函数执行导致攻击者可注入恶意代码触发远程代码执行。二、代码分析漏洞核心原因tag_test_action.php 文件中后台标签测试功能未对用户提交的标签参数tags进行任何过滤直接将其代入eval()函数执行而eval()函数可执行任意PHP代码攻击者登录后台后构造恶意标签参数即可执行恶意代码获取服务器控制权。关键漏洞代码原文件片段?php // 原漏洞代码后台标签测试逻辑存在RCE漏洞 require_once(dirname(__FILE__)./config.php); $tags $_POST[tags]; // 未对tags参数进行任何过滤直接代入eval()执行触发RCE eval($tags $tags;); echo $tags; ?代码问题分析参数未过滤tags参数直接从POST请求中获取未进行任何过滤、转义处理允许传入包含恶意PHP代码的参数危险函数使用不当eval()函数是PHP中最危险的函数之一可直接执行任意PHP代码此处直接将用户可控参数代入导致远程代码执行漏洞无权限额外校验虽为后台漏洞但未对操作权限进行进一步校验只要登录后台无论权限高低均可利用该漏洞无参数校验未校验tags参数的合法性允许传入任意长度、任意内容的参数进一步放大漏洞危害。漏洞利用示例仅用于学习请勿非法测试// 后台提交tags参数为{${phpinfo()}}// 执行后会触发eval()函数执行phpinfo()显示服务器PHP信息替换为木马代码即可Getshell// 木马代码示例{${file_put_contents(‘shell.php’,?php eval($_POST[pass]);?’)}}三、修复方法原位修复不升级、不影响模板本修复方案无需升级DedeCMS版本仅修改tag_test_action.php文件通过禁用危险函数、过滤参数、限制权限彻底封堵RCE漏洞不影响后台正常功能步骤如下步骤1备份漏洞文件备份 /tag_test_action.php 文件备份路径示例/tag_test_action.php.bak避免修改错误导致后台标签测试功能异常便于后续回滚操作。步骤2核心修复禁止危险函数过滤参数打开 /tag_test_action.php 文件替换为以下修复后的代码核心是移除eval()危险函数、过滤参数、添加权限校验?php require_once(dirname(__FILE__)./config.php); // 修复1添加权限校验仅允许超级管理员操作避免低权限账号利用 if($cuserLogin-getUserType() ! 1){ exit(无权限操作请联系超级管理员); } $tags $_POST[tags]; // 修复2过滤tags参数禁止包含恶意代码和危险字符 $forbidChars array(eval, exec, system, shell_exec, passthru, phpinfo, file_put_contents, fopen, unlink, {, }, $, ( , )); foreach($forbidChars as $char){ if(strpos($tags, $char) ! false){ exit(标签内容包含非法字符禁止提交); } } // 修复3移除eval()危险函数改用安全的字符串处理方式 $tags htmlspecialchars($tags, ENT_QUOTES); echo $tags; ?步骤3额外加固可选提升安全性禁用危险函数在PHP配置文件php.ini中添加 disable_functions eval,exec,system,shell_exec,passthru 禁止危险函数执行需谨慎避免影响网站其他功能删除无用功能若网站无需后台标签测试功能可直接删除 tag_test_action.php 文件彻底杜绝该漏洞限制后台登录IP通过Apache/Nginx配置仅允许指定IP登录后台防止攻击者非法登录后台利用该漏洞加强后台密码复杂度要求管理员密码包含字母、数字、特殊字符定期更换密码降低后台被登录的风险。步骤4验证修复效果低权限账号测试使用非超级管理员账号登录后台访问tag_test_action.php提示「无权限操作」修复生效恶意代码测试提交tags参数为 {${phpinfo()}} 或木马代码提示「标签内容包含非法字符」修复生效正常标签测试提交合法的标签内容如 {dede:field.title/}可正常显示说明功能未受影响。四、注意事项该漏洞危害极大登录后台即可Getshell修复后务必全面测试确保漏洞已彻底封堵若网站无需后台标签测试功能建议直接删除 tag_test_action.php 文件从根源上杜绝漏洞修复后需检查后台其他涉及eval()函数的文件避免存在类似漏洞定期扫描后台文件排查是否有恶意文件植入防止攻击者已利用漏洞获取控制权若修复后出现标签测试功能异常可恢复备份文件检查代码修改是否有误或联系技术人员协助排查。本文由 流觞运维 整理https://www.lnmpweb.cn/archives/7499

更多文章