来源:
https://www.anquanke.com/vul/id/1436256
http://www.iwantacve.cn/index.php/archives/88/
漏洞触发点在:
include/dialog/select_images.php
即选择图片文件处。

提交点请求是向这个文件:
include/dialog/select_images_post.php
该文件的第一个有效行:
require_once(dirname(__FILE__)."/config.php");
config.php第一个有效行:
require_once(dirname(__FILE__)."/../common.inc.php");
common.inc.php中的148行:

再来看uploadsafe.inc.php这个处理上传文件的脚本。

这里会跟$cfg_not_allowall这个变量进行匹配,匹配成功,则说明文件名存在不允许的字符,然后输出Not Admin Upload filetype not allow !
修改文件后缀名
然后修改文件后缀名为:ico-sadd.png.p*hp,调试时发现绕过来那个敏感字符列表,跳到来下一个if。

这样就绕过来检查,然后回到select_images_post.php的36行。
$imgfile_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $imgfile_name));
这里将$imgfile_name中的*去掉了!
在38行时,发现已经变成了ico-sadd.png.php。

然后返回给前端是:

路径为:
/DedeCMS-V5.7-UTF8-SP2/uploads/190124/1-1Z1241P55W43.php
直接访问得到:

根据select_images_post.php的36行,可知,可将文件名改为:ico-sadd.png.p%<>?:hp,依然可以上传成功。

本文详细解析了DedeCMS V5.7 SP2版本中包含的文件上传漏洞,展示了如何通过修改文件后缀名绕过系统检测,实现非法文件上传的过程。此漏洞主要涉及的脚本包括select_images.php和select_images_post.php,通过分析这两个文件的处理流程,揭示了漏洞的具体触发点。


被折叠的 条评论
为什么被折叠?



