一、payload如下:
1 | http://localhost/dede/file_manage_control.php?fmdo=rename&oldfilename=/uploads/media/180330/1_2146195021.swf&newfilename=/mochazz.php |
二、效果图:
三、具体分析:
漏洞文件为 dede/file_manage_control.php ,$fmdo 开始时赋值,所以我们可以使fmdo=rename ,使其进入 if语句 ,调用 FileManagement 对象的 RenameFile 方法,跟进 RenameFile 方法。
使用 grep -Rni 关键字 快速定位类和方法。
看到 $oldname 和 $newname 直接拼接生成,没有对文件名进行过滤,直接导致漏洞发生。所以最终payload为:/dede/file_manage_control.php?fmdo=rename&oldfilename=你上传文件的路径&newfilename=你想写的路径
四、番外篇:
其实我们可以利用这个文件名任意修改的漏洞结合CSRF以及一点点社工手段,打出组合拳,完全可以拿下一些网站。具体手法如下:
- 利用dede前台会员上传点上传文件,获取路径
- 构造攻击url
- 将一长长的恶意url变成短连接
- 社工网站管理员,让其点击
- 成功getshell
不过有一点不够隐蔽,就是在管理员点击链接后,会提示成功修改文件名,这个可能会引起细心的管理员的警觉。