Jun 06 2018

Dedecms V5.7 后台文件重命名[CVE-2018-9134]

首页 » 代码审计 » Dedecms V5.7 后台文件重命名[CVE-2018-9134]   

Dedecms V5.7 后台文件重命名[CVE-2018-9134]

1.jpg


Dedecms V5.7版本后台可实现对于文件的重命名,可将上传的任意文件重名为php文件,导致getshell

该漏洞的逻辑比较简单,就从漏洞的入口文件开始看,漏洞的入口文件是dede/file_manage_control.php,其部分源码如下:

2.jpg


重点就在于这里的if,由于dede采取的是伪全局变量注册机制,导致在未经过滤的情况下我们可声明任意变量。在该文件中,前面只是简单的验证身份是否正确,并没有对于变量进行任何过滤。也就是说,我们可控$fmdo,$oldfilename,$newfilename这三个变量。

跟进RenameFile方法,文件位于dede/file_class.php:

3.jpg


在这个方法中,对于传入的变量只是进行参数拼接操作,就是我们传入的参数前加上web服务的根目录的绝对路径。对于之后的变量没有任何过滤。导致我们可操作自行上传的文件。从而实现将任意类型文件重命名为php文件。

利用方式:
首先随便找个上传点,上传合法文件。获取上传之后的文件路径。
这里我找的是前台->会员中心->附件管理,从这上传一个zip文件,内容就是phpinfo()

4.jpg


可以在源码里看到上传文件的路径:

5.jpg


接下来构造触发重命名payload:
将文件路径的值填入oldfilename参数,这里注意不要加反斜杠
newfilename的值就是我们要生成的木马文件的名称。(由于我的dede并不是放在web服务的根目录下,因此我这里需要加上dedecms/)
fmdo构造为rename即可
最终生成以下poc:
http://localhost/dedecms2/dede/file_manage_control.php?fmdo=rename&oldfilename=dedecms2/uploads/userup/1/151QM125-42I.zip&newfilename=dedecms2/wisdom.php
执行之后访问:http://localhost/dedecms2/wisdom.php

6jpg.jpg


配合存储型xssgetshell

修复方案:在file_class.php中过滤$newname参数,或者file_manage_control.php中过滤$newfilename参数,判断文件后缀是否为php

如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: dedecms漏洞

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «Dedecms最新版任意用户密码重置漏洞的疑问 | DedeCMS的两个小trick»

你肿么看?

你还可以输入 250/250 个字

微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

这篇文章还没有收到评论,赶紧来抢沙发吧~

友情链接:万达开户  华宇招商  万达注册  万达招商QQ  万达主管  万达娱乐开户  万达娱乐登录  万达娱乐主管QQ  万达娱乐直属