救命:如何修复被挂木马的php网站
- - 鲁塔弗的博客有个朋友的网站长期没有人管理,而网站PR=4,于是网站被人攻陷,首页加上了上百条黑链,找我帮忙修复. 看到首页密密麻麻的黑链,第一反应就是头大. 最简单的办法: 格式化后重装系统. 但是这个服务器web/数据库都部署在同一台上,数据规模有200多G,当初安装的时候也没有分区,在线迁移数据太麻烦了,只能硬着头皮去修复问题,步骤如下.
有个朋友的网站长期没有人管理,而网站PR=4,于是网站被人攻陷,首页加上了上百条黑链,找我帮忙修复
看到首页密密麻麻的黑链,第一反应就是头大。最简单的办法: 格式化后重装系统。但是这个服务器web/数据库都部署在同一台上,数据规模有200多G,当初安装的时候也没有分区,在线迁移数据太麻烦了,只能硬着头皮去修复问题,步骤如下
停掉web服务,免得旧仇未报,又添新恨
找到被挂马的漏洞。一定要找到,不然问题根本解决不了。服务器被挂马主要是两种原因:sql注入或者某种系统性漏洞
sql注入,和代码有关系,不好查。但是只要你的nginx/php不是以root身份运行的,最多被拖库,被挂马的可能性不大
系统性漏洞,这个破坏性很大,但是都会比较著名,马上有人提供解决方案,搜索一下就能找到
所以,找到被挂马的原因是: nginx文件类型错误解析漏洞,这个漏洞很严重,php网站只要支持图片上传都会中招
修补漏洞, nginx文件类型错误解析漏洞 这个漏洞比较好修复,在nginx configure文件里面配置一下即可
搜查木马文件,到代码安装目录执行下面命令
find ./ -iname "*.php" | xargs grep -H -n "eval(base64_decode"
搜出来接近100条结果,这个结果列表很重要,木马都在里面,要一个一个文件打开验证是否是木马,如果是,马上删除掉
最后找到10个木马文件,存放在各种目录,都是php webshell,功能很齐全,用base64编码
清理现场, 去掉首页上的黑链,重启web服务