如何修复被挂木马的php网站
2023-03-09 22:03:14 时间
有个朋友的网站长期没有人管理,而网站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服务
安全经验
- 普通服务器被挂马,不用紧张,按上述步骤进行修复
- 关键服务器(比如部署了用户资金/转账/交易 等服务),被挂马之后,必须要格式化重装,因为webshell的功能实在是非常齐全,攻击者很可能替换掉系统关键程序,比如sshd,nginx等,从此大门打开,随便进出
- 服务器安装系统要分区,至少应该分 系统区和数据区 两部分,这样重装系统的时候可以不用迁移数据
- 凡是提供外部端口的服务程序(web server,gate server),一定要用独立的用户运行,千万不要图省事,直接用root
原文发布时间为:2013-09-10
本文来自云栖社区合作伙伴“Linux中国”
相关文章
- Amazon IoT 设备批量注册和数据路由的自动化部署和实现方案
- 基于Amazon IoT SiteWise 与企业微信平台的数字化工厂虚拟安灯解决方案
- socket dns java_JAVA socket 关于DNS 缓存
- 使用架构完善框架(Well-Architected Framework)以实践成本优化
- 使用 Simple Replay 实用程序简化 Amazon Redshift RA3 迁移评估
- 使用 AWS Lake Formation 和 AWS Glue 设计数据网格架构
- 使用亚马逊云科技 Single Sign-On 服务对亚马逊云科技中国区域账户实现单点登录
- opencv-python安装
- 使用 Amazon Pricing Calculator 在亚马逊云科技中国区域估算云使用成本
- Python-opencv学习
- 在 Amazon Web Services 构建无服务器消息推送网关
- 使用 AWS Systems Manager 自动启动或停止分布式 SAP HANA 系统
- 在 Amazon sagemaker 上微调与部署 BioBERT 模型
- 基于无服务器架构和事件驱动的 Data Lake 数据移动
- 使用 Cognito User Pools 快速构建企业级 SSO 单点登录中心
- 使用 Cognito 与 AWS API Gateway 集成实现 API 级别权限控制
- 基于 AWS ECR 或 S3 搭建 Helm Chart 仓库
- 利用Graviton2和S3免费套餐搭建私人网盘
- Python:thread & process
- 利用Graviton2配置虚拟声卡实时处理音频