阿里云提出的漏洞(Phpcms V9某处逻辑问题导致getshell漏洞解决方法)的问题
2017-04-16 22:22
513 查看
最近从阿里云云盾检测流出来的,相比使用阿里云服务器的朋友已经收到漏洞提醒:Phpcms V9某处逻辑问题导致getshell漏洞解决方法,这个漏洞怎么办呢?CMSYOU在这里找到针对性解决办法分享给大家。
漏洞详情:
具体解决方法:
修改/phpcms/libs/classes/attachment.class.php文件143行左右的download方法,在方法开始位置加入:
这样,加入一个判断,如果允许的文件格式是'gif','jpg','jpeg','bmp','png'这些,就继续,不然就跳出,当然这里的格式可以根据需要增多几个。
阿里云主机会针对phpcms漏洞检测,有些可以忽略,因为毕竟phpcms还是没有弱,部分可以针对性打补丁哈,以上代码经过测试,希望对大家有用,有疑问可以留言探讨!
文章来自:http://www.cmsyou.com/support/166.html
漏洞详情:
漏洞名称:phpcms某处逻辑问题导致getshell
补丁编号:7843523
补丁文件:/phpcms/libs/classes/attachment.class.php
补丁来源:云盾自研
更新时间:2016-09-20 13:03:10
漏洞描述:phpcms的/phpcms/libs/classes/attachment.class.php中,对输入参数$ext未进行类型限制,导致逻辑漏洞的产生。
【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了改漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】
补丁编号: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
相关文章推荐
- base.set_Item base.get_Item导致无法编译问题解决方法
- discuz教程:阿里提示Discuz memcache+ssrf GETSHELL漏洞的解决方法 终极解决办法 最新版
- 阿里云提示Discuz uc.key泄露导致代码注入漏洞uc.php的解决方法
- 阿里云提示 Didcuz memcache+ssrf GETSHELL漏洞修复方法
- PHPcms v9 get标签sql 语句limit无效问题的解决方法
- 关于phpcms v9的get标签里面的sql 语句limit无效问题的解决方法
- Didcuz memcache+ssrf GETSHELL漏洞解决方法
- 微软CRM打上rollup3补丁后导致工作流无法发布问题解决方法
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- 程序中和有js函数的网页交互,线程中调用 get_Script 就会错误的解决方法,由于COM的线程安全问题
- Win7下IE 8内存保护可能导致ActiveX无法安装的问题及其解决方法
- 针对FastDB commit时sync到文件导致效率降低问题的官方权威解决方法
- jfreechart出现ChartDeleter没有序列化问题导致session信息丢失的解决方法
- 在Ubuntu下安装VMware Tools导致鼠标滚轮不能用的问题的解决方法
- libbz2.a,libz.so导致tokyocabinet make失败问题解决方法
- 关于CSS中内层使用float导致外层的背景无法显示的问题的解决方法
- System.Configuration.ConfigurationSettings.GetConfig(string)”已过时 问题的解决方法
- 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动的解决方法 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动
- System.Configuration.ConfigurationSettings.GetConfig(string)”已过时 问题的解决方法
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法