CVE-2018-20129-DedeCMS V5.7 SP2前台文件上传漏洞复现
-
登录管理页面后,开启会员功能(默认是关闭的)
-
回到首页,用户登录后,点击会员中心。
-
打开内容中心(第一次进入会提示完善个人信息,完善一下,不然不能操作)
重点开始
4. 发表文章的表单最下方有一个图片的图标,点击可以选择上传图片到服务端。
制作图片码
-
上传
-
抓包修改文件后缀:p*hp
-
连接,成功
-
代码审计
为什么用.ph%p就可以绕过检测了?我们来看看源码中的问题部分。
找到图片的校验部分的源码文件:网站根目录\(cms文件名)\include\dialog\select_images_post.php
$imgfile_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $imgfile_name));
这行代码的意思是利用preg_replace函数将文件名中一些特殊符号进行过滤,过滤之后未对文件名进行再次检验,导致漏洞的产生。
所以当我们上传的文件名中只要包含\r\n\t*%\/?><|":,都会被过滤掉。
参考——>传送门