一次教训记录

《一次教训记录》
2019年11月22日早,早上起来吃完饭,网站监控直接邮件过来无法正常访问。
打开网站,试试PHP可以正常运行,wordpress也没问题,换了朋友电脑一样打不开。
打开F12,发现了一点状况,感觉可能被挂马了。
《一次教训记录》

想来想去,我一个小博客,你都不放过,是不是被盯上了?
思前向后,我估计应该是源程序的漏洞导致的
1、别人挂马,应该直接可以打开,打不开你挂什么马,如上,这样植入,我估计你是不可能打开的吧。
2、我强开了ssl,所以不是安全协议的ssl是是加载不了的。
3、编码都没适应
综上,个人分析应该是源码漏洞,被批量扫描出来植入的,并且植入习惯比较好,应该是针对wordpress的。
不管怎么样,一步一步排查呗。
1、查下Apache和nginx的配置文件确认无问题
2、查下模板文件,没问题。
3、查下文件修改记录,这就是最操蛋的地方哈,竟然也没问题,我有点怀疑人生了。也就是这点,导致我走了很多弯路。
最后换个思路,随便写了段php代码放到网站根目录跑下,发现运行正常,这基本确定了应该是在wordpress里面被挂的
最后查到了在index.php文件下
《一次教训记录》
删除代码,网站恢复正常。
但是还是没有找出问题的所在,比较后怕,把服务器所有网站全部拉出来凑了一眼
很悲剧,全部都中了,不过也有没中的,筛查下原因
《一次教训记录》
最后终于找到了地方
《一次教训记录》

这个webshell让我真的很害怕啊(我在感染目录里面找到了密码)
《一次教训记录》
《一次教训记录》
这要是被打包下去,我估计报警都来不及了。
仔细查了一下,话说这小子真是无语了,装的到处都是木马。
《一次教训记录》
我备份了一下,把可疑文件下载下来看一下,找个杀毒软件查下:

SHA1 69db1f8f29dd2bede6e2fe1b30f007fc3ea27cfb
MD5 b741a32a5ec74812b52e710124e28f9b
Size 22593 Byte
Version 1.8.2
检测结果
1/0/1 (后门/疑似/文件总数)

《一次教训记录》 

《一次教训记录》

最后全部清除扫描一下,找个杀毒软件查杀一下

《一次教训记录》

至于源码漏洞,我估计90%是thinkphp的内核导致的,以后再找吧,把系统日志备份下,如果帐号或者某些时候出问题,就把网络日志打包发给警察报警了。

最后:千万不要乱装程序,一定要设置好目录权限。

最后一张图,希望大家都好过一点,只要你在网上呆过,必然会留下痕迹。

《一次教训记录》

好累,睡觉。

—————————————————2019年11月26日更新————————————————-

找到漏洞了。在这里,果然是thinkphp的问题

https://blog.thinkphp.cn/869075

本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。

修复方法:

if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}
#针对thinkphp5.0,在think\App类的module方法的获取控制器的代码后面加上
if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}
//在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上

《一次教训记录》

发表回复