- A+
0x00 简述
版本:deedcms v5.7 sp2
下载链接:http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-UTF8-SP2.tar.gz
dedecms后台getshell漏洞有很多,之前遇见的都是一些直接上传php文件,或者修改一下后缀(大小写),或者修改模版。这个漏洞产生的原因也是在上传功能处,不同之处是,需要上传的是一个zip文件,然后zip文件在解压过程中对文件名校验不严格,造成可以getshell
0x01 演示
- 首先构造一个文件名为1.jpg.php的文件,内容为<?php phpinfo();?>
- 将该文件进行压缩
- 在常用操作-文件式管理器处上传压缩文件到soft目录下
4.访问dede/album_add.php,选择从 从ZIP压缩包中解压图片
0x02 代码分析
查看album_add.php
参数dopost值为save
执行49行的else if
跟踪代码到160行,从压缩文件中获取图片
进入GetMatchFiles函数,传入的fileexp为jpg|png|gif
通过正则匹配检查文件名是否合法
漏洞产生点:
else if(preg_match("/\.(".$fileexp.")/i",$filename))
{
$filearr[] = $truefile;
}
- 微信 wzgj360
- 联系免费答疑
- QQ 613049615
- 联系免费答疑