dedecms任意命令执行漏洞0day

Posted yu22x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dedecms任意命令执行漏洞0day相关的知识,希望对你有一定的参考价值。

dedecms 任意命令执行漏洞

一、漏洞简介

dedecms后台存在任意命令执行漏洞(已提交cnvd并归档,官方2022.1.12发布补丁,目前新版本已修改,上个版本可以通过链接下载 ,提取码:ikom )

二、漏洞影响

dedecms5.7.85

三、复现过程

漏洞分析

漏洞位置:plus/mytag_js.php
可以看到在文件写入之后,可以通过一些方式直接文件包含。这样的话我们就不必关心文件名(当然文件名是固定htm后缀的)而只需要关心文件写入时传的myvalues是什么内容即可。

往上看可以发现是通过一个查询得到的,而这个查询具体的语句是什么呢?我们接着往上看。


可以看到具体的查询语句是

SELECT * FROM `#@__mytag` WHERE aid='$aid'

那么有查询很有可能有插入的功能,全局搜索表名。

找到了具体的查询语句,但我们发现没有aid这个列名,那么他肯定是自增的了。

访问该页面得到具体的插入界面。我们试着插入如下数据。

接着打印一下$pv->GetResult()的结果,在此之前我们为了不die掉需要传人一个arcID和nocache

这个具体的aid号我们也是可以看到的。


输入完之后发现回显的是f,也就是我们返回的内容是我们插入时传的”正常显示内容“。
最后我们整理一下思路。
1、首先插入一个tag,在“正常显示内容”处传入我们要执行的php代码。
2、通过file_put_contents写入文件。
3、通过include包含文件。

利用过程

1、访问dede/mytag_main.php插入一个标记。

保存成功后记住对应的编号。

2、访问/plus/mytag_js.php?arcID=6&nocache=1 (其中的6为tag的编号)来生成文件。
3、访问/plus/mytag_js.php?arcID=6来包含文件。


成功执行了exec(‘calc’);
我们可以来看下生成的文件内容。

会被包裹在一些字符串中,但是在include的时候不影响php代码的解析。

二、漏洞影响

dedecms5.7.85

三、复现过程

漏洞分析

漏洞位置:plus/mytag_js.php
可以看到在文件写入之后,可以通过一些方式直接文件包含。这样的话我们就不必关心文件名(当然文件名是固定htm后缀的)而只需要关心文件写入时传的myvalues是什么内容即可。

往上看可以发现是通过一个查询得到的,而这个查询具体的语句是什么呢?我们接着往上看。


可以看到具体的查询语句是

SELECT * FROM `#@__mytag` WHERE aid='$aid'

那么有查询很有可能有插入的功能,全局搜索表名。

找到了具体的查询语句,但我们发现没有aid这个列名,那么他肯定是自增的了。

访问该页面得到具体的插入界面。我们试着插入如下数据。

接着打印一下$pv->GetResult()的结果,在此之前我们为了不die掉需要传人一个arcID和nocache

这个具体的aid号我们也是可以看到的。


输入完之后发现回显的是f,也就是我们返回的内容是我们插入时传的”正常显示内容“。
最后我们整理一下思路。
1、首先插入一个tag,在“正常显示内容”处传入我们要执行的php代码。
2、通过file_put_contents写入文件。
3、通过include包含文件。

利用过程

1、访问dede/mytag_main.php插入一个标记。

保存成功后记住对应的编号。

2、访问/plus/mytag_js.php?arcID=6&nocache=1 (其中的6为tag的编号)来生成文件。
3、访问/plus/mytag_js.php?arcID=6来包含文件。


成功执行了exec(‘calc’);
我们可以来看下生成的文件内容。

会被包裹在一些字符串中,但是在include的时候不影响php代码的解析。

以上是关于dedecms任意命令执行漏洞0day的主要内容,如果未能解决你的问题,请参考以下文章

Catfish任意代码执行漏洞 0day

seacms V11.5代码执行漏洞(0day)

seacms V11.5代码执行漏洞(0day)

dedecms漏洞修复大全含任意文件上传漏洞与注入漏洞

dedecms漏洞修复大全含任意文件上传漏洞与注入漏洞

DedeCMS v5.7 注册用户任意文件删除漏洞