Dedecms 模板编辑绕过 waf 写入恶意代码探寻
字数 743 2025-08-29 08:30:24

Dedecms 模板编辑绕过WAF写入恶意代码分析

环境搭建

  1. 下载Dedecms源码:https://www.dedecms.com/
  2. 安装并进入后台管理界面(通常通过访问/dede路径)

漏洞发现过程

  1. 后台模板编辑功能允许直接编辑PHP文件
  2. 尝试写入常见PHP恶意函数(如system()exec()phpinfo())均被拦截
  3. 尝试使用较少见的passthru()函数也被拦截

代码分析

关键防护机制

  1. 内容过滤机制获取并检查除注释外的所有内容
  2. 拦截列表包括:
    • 常见PHP恶意函数
    • 全局变量(如$_GET$_POST

正则防护规则

  1. 第一条正则:检查文件是否含有<?php<?=标签
  2. 第二条正则:检查是否存在类似$_GET(...)的调用
  3. 第三条正则:检查是否存在类似$_POST(...)的调用
  4. 第四条正则:检查是否有反引号(命令执行符号)

绕过WAF的技术

方法一:字符串拼接

  1. 通过将函数名拆分为多个部分进行拼接
  2. 示例:
    $a = "sys"."tem";
    $a("whoami");
    

方法二:动态函数调用

  1. 使用变量函数调用方式
  2. 示例:
    $func = "system";
    $func("whoami");
    
    注意:此方法可能被动态调用检测拦截

方法三:CTF常用技巧

  1. 使用非常规的函数调用方式
  2. 最终有效的payload示例:
    // 具体payload未在原文中完整展示,但暗示使用了CTF中常见的绕过技术
    

验证漏洞利用

  1. 成功保存修改后的模板文件
  2. 检查文件确认修改已写入
  3. 通过访问相应页面验证命令执行功能

防御建议

  1. 限制后台模板编辑权限
  2. 加强WAF对字符串拼接和动态调用的检测
  3. 实施文件完整性监控
  4. 定期更新CMS系统和安全补丁

总结

该漏洞利用Dedecms模板编辑功能的WAF绕过技术,通过字符串拼接和动态函数调用等方式成功注入恶意代码,实现了系统命令执行。这强调了在Web应用中不仅需要过滤明显恶意输入,还需要防范各种混淆和绕过技术的重要性。

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