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

最近从阿里云云盾检测流出来的,相比使用阿里云服务器的朋友已经收到漏洞提醒: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

 

posted @ 2017-04-16 22:22  KSnow  阅读(392)  评论(0编辑  收藏  举报