Dedecms 模板编辑绕过 waf 写入恶意代码探寻
字数 743 2025-08-29 08:30:24
Dedecms 模板编辑绕过WAF写入恶意代码分析
环境搭建
- 下载Dedecms源码:https://www.dedecms.com/
- 安装并进入后台管理界面(通常通过访问/dede路径)
漏洞发现过程
- 后台模板编辑功能允许直接编辑PHP文件
- 尝试写入常见PHP恶意函数(如
system()、exec()、phpinfo())均被拦截 - 尝试使用较少见的
passthru()函数也被拦截
代码分析
关键防护机制
- 内容过滤机制获取并检查除注释外的所有内容
- 拦截列表包括:
- 常见PHP恶意函数
- 全局变量(如
$_GET、$_POST)
正则防护规则
- 第一条正则:检查文件是否含有
<?php或<?=标签 - 第二条正则:检查是否存在类似
$_GET(...)的调用 - 第三条正则:检查是否存在类似
$_POST(...)的调用 - 第四条正则:检查是否有反引号(命令执行符号)
绕过WAF的技术
方法一:字符串拼接
- 通过将函数名拆分为多个部分进行拼接
- 示例:
$a = "sys"."tem"; $a("whoami");
方法二:动态函数调用
- 使用变量函数调用方式
- 示例:
注意:此方法可能被动态调用检测拦截$func = "system"; $func("whoami");
方法三:CTF常用技巧
- 使用非常规的函数调用方式
- 最终有效的payload示例:
// 具体payload未在原文中完整展示,但暗示使用了CTF中常见的绕过技术
验证漏洞利用
- 成功保存修改后的模板文件
- 检查文件确认修改已写入
- 通过访问相应页面验证命令执行功能
防御建议
- 限制后台模板编辑权限
- 加强WAF对字符串拼接和动态调用的检测
- 实施文件完整性监控
- 定期更新CMS系统和安全补丁
总结
该漏洞利用Dedecms模板编辑功能的WAF绕过技术,通过字符串拼接和动态函数调用等方式成功注入恶意代码,实现了系统命令执行。这强调了在Web应用中不仅需要过滤明显恶意输入,还需要防范各种混淆和绕过技术的重要性。