您的位置:首页 > 运维架构 > Shell

阿里云提出的漏洞(Phpcms V9某处逻辑问题导致getshell漏洞解决方法)的问题

2017-04-16 22:22 513 查看
最近从阿里云云盾检测流出来的,相比使用阿里云服务器的朋友已经收到漏洞提醒:Phpcms V9某处逻辑问题导致getshell漏洞解决方法,这个漏洞怎么办呢?CMSYOU在这里找到针对性解决办法分享给大家。

漏洞详情:

漏洞名称:phpcms某处逻辑问题导致getshell

补丁编号:7843523

补丁文件:/phpcms/libs/classes/attachment.class.php

补丁来源:云盾自研

更新时间:2016-09-20 13:03:10

漏洞描述:phpcms的/phpcms/libs/classes/attachment.class.php中,对输入参数$ext未进行类型限制,导致逻辑漏洞的产生。

【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了改漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】

具体解决方法:



修改/phpcms/libs/classes/attachment.class.php文件143行左右的download方法,在方法开始位置加入:

1     $extarr = explode('|',strtolower($ext));
2     $allow_extarr = array('gif','jpg','jpeg','bmp','png');
3     foreach ($extarr as $theext) {
4     if(!in_array(strtolower($theext),$allow_extarr)){
5     exit('the file ext is not allowed');
6     exit(0);
7     }
8     }


这样,加入一个判断,如果允许的文件格式是'gif','jpg','jpeg','bmp','png'这些,就继续,不然就跳出,当然这里的格式可以根据需要增多几个。

阿里云主机会针对phpcms漏洞检测,有些可以忽略,因为毕竟phpcms还是没有弱,部分可以针对性打补丁哈,以上代码经过测试,希望对大家有用,有疑问可以留言探讨!

/*$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');//循环判断如果有一个不符合,直接返回 0
}
}*/


文章来自:http://www.cmsyou.com/support/166.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐