导读:使用phpcms v9建站,放在阿里云服务器上,经常发送修复漏洞通知,今天B5教程网解决一下这个漏洞,分享给大家。这个漏洞文件地址是/phpcms/...
使用phpcms v9建站,放在阿里云服务器上,经常发送修复漏洞通知,今天B5教程网解决一下这个漏洞,分享给大家。
这个漏洞文件地址是
/phpcms/libs/classes/attachment.class.php
我们看一下阿里云的具体漏洞说明如下图:
现这个问题主要是没有验证$ext进行类型验证,那就搜索一下参数$ext,大概在143行方法
function download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = '')
解决方法如下:
在方法最上面添加如下代码
- $extArray=explode('|',$ext);
- if(!empty($extArray) && is_array($extArray)){
- foreach($extArray as $k => $v){
- if(!in_array(strtolower($v), array('gif','jpg','jpeg','bmp','png'))); exit('0');
- }
- }
注意:这里可以获取网站配置里的附件上传类型来判断,我这里是写死的,仅供参考。