第一次被黑
发现网站被黑后,立即查看nginx日志和sql日志。结果在nginx日志里面发现了一段 xxx.com/index.php?.....eval 这样的一段访问日志,度娘下,结果就出来了,是:thinkphp控制器漏洞,解决方案:https://blog.thinkphp.cn/869075(TP官网提供)
这是一个很容解决的漏洞
攻击方式:http://youwebhost/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=file_put_contents(%22index.php%22,%22%E4%BD%A0%E7%9A%84%E7%BD%91%E7%AB%99%E8%A2%AB%E6%89%93%E6%AD%BB%E4%BA%86%EF%BC%81%22)
第二次被黑
按照以上方法,修复了漏洞,一周后发现又被黑,查看nginx,sql日志,没发现异常。恢复备份(这是完整的备份,可不是被黑后的备份),两天后又被黑,换空间,换ip ....就这样整整持续了半个多月(持续这么久,其实也是想知道黑客是这么进来的,纯粹是想研究下)。每次被黑后,就会分析nginx、sql日志,结果在nginx日志里,发现了缓存访问文件的时间点和被黑的时间点很接近,虽然只是访问了一次,但还是留个心眼。最后实在找不出结果,于是就跟这个缓存干上了... 无意间度娘了下"缓存漏洞",结果发现也有人中招。
缓存文件虽然只是访问了一次,但是就这一次,就在你网站了完成了种马操作(第一次访问,生成首个种马文件,然后删除该缓存文件;最后利用首个种马文件,再次完成生成多个种马,这样就完成了完美的掩盖【掩盖首次的入口文件】)
解决方案:开启强制路由。因为访问缓存不符合设置路由规范,一律会被pass,就杜略了别人恶意的访问
总结:
1.分析nginx、log日志很重要(被黑时间和日志访问时间,能找到可疑文件)
2.利用工具,可以查看到文件最近被改的时间,如果时间不对说明里面有文件被修改,很可能是种马文件(这点很有用很多黑客大多数是在晚上十二点到早上7点,改文件)。一般会种很多个,阿里云分析出有5个,而我自己找出了十二个
3.完整的网站一定要备份,以防万一
4.使用thinkphp最好开启强制路由,关闭debug,做好404
Thinkphp5高级群:101766150
