该代码使用白名单机制验证,按道理说白名单一般都是比较安全的。但是问题就出现在验证的过程那里,验证后缀名使用的是正则preg_match方法

只要我们构造的后缀名中包含白名单机制里面的后缀名即可成功上传再结合iis的解析特性即可成功执行代码。

构造文件名 x.asp;jpg  上传即可。

我表示这个危害还是蛮大的,毕竟这款编辑器用的人还是很多的。

临时修复方法:

if(preg_match('/;/',$extension)){
echo '非法后缀';
exit;
}

其他案例:KingCMS php版本 /system/upload.php 需要登录 畸形文件上传