代码审计之织梦最新版任意文件名修改漏洞

一、payload如下:

1
http://localhost/dede/file_manage_control.php?fmdo=rename&oldfilename=/uploads/media/180330/1_2146195021.swf&newfilename=/mochazz.php

二、效果图:

29

三、具体分析:

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

30

使用 grep -Rni 关键字 快速定位类和方法。

31

看到 $oldname$newname 直接拼接生成,没有对文件名进行过滤,直接导致漏洞发生。所以最终payload为:/dede/file_manage_control.php?fmdo=rename&oldfilename=你上传文件的路径&newfilename=你想写的路径

32

四、番外篇:

其实我们可以利用这个文件名任意修改的漏洞结合CSRF以及一点点社工手段,打出组合拳,完全可以拿下一些网站。具体手法如下:

  • 利用dede前台会员上传点上传文件,获取路径
  • 构造攻击url
  • 将一长长的恶意url变成短连接
  • 社工网站管理员,让其点击
  • 成功getshell

不过有一点不够隐蔽,就是在管理员点击链接后,会提示成功修改文件名,这个可能会引起细心的管理员的警觉。

五、参考文章:

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

文章作者: Mochazz
文章链接: https://mochazz.github.io/2018/03/30/dedecms任意文件名修改+CSRF/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mochazz's blog