网站被挂马了怎么办?从自查到清除的完整步骤
很多站长是被搜索引擎“提醒”才知道自己网站被挂马的:收录里冒出赌博/博彩页面、打开站点偶尔跳转到陌生地址、服务器 CPU 莫名跑满。挂马的本质是网站被植入了恶意代码或后门,轻则被当流量肉鸡,重则数据库被拖、客户信息泄露。这篇文章给出一套从“确认”到“清除”的可落地步骤。
一、先确认:到底是不是被挂马了?
- 收录异常:在搜索引擎搜
site:你的域名,出现大量与你无关的页面(尤其博彩、贷款类),常见于黑帽 SEO 暗链。 - 页面跳转:手机端访问偶尔跳到陌生站,PC 端正常——这是针对 UA 的挂马。
- 资源异常:服务器 CPU/带宽莫名升高,可能被跑挖矿或代理脚本。
- 文件被改:核心文件(
index.php、functions.php等)修改时间异常,或多了陌生的.php文件。
二、先断,别急着重启
发现被入侵后,第一步是 Isolation(隔离)而不是重启:把站点切到维护页或下线,避免继续被拖数据;同时保留现场(先复制一份网站目录和数据库做取证),重启会丢失内存中的后门进程线索。
三、定位入口与后门
- 看 Web 日志:找异常 POST 请求、奇怪的上传点(
upload.php等)、深夜的大量 404 扫描。 - 比对文件:用备份或官方原版对比核心文件,找出被篡改和新增的脚本。
- 查后门:危险函数(
eval/assert/base64_decode/system)、计划任务(crontab)、数据库里陌生的管理员账号。
入口往往是一个没打补丁的组件(如旧版 ThinkPHP、WordPress 插件)或一个弱口令后台。只清后门不补入口,过几天还会再中招。
四、清除并加固
- 删除后门文件、回滚被改文件(从干净备份恢复)。
- 改掉所有后台/数据库/SSH 口令,不用
admin/123456这类弱口令。 - 把 CMS、插件、框架升级到最新版本。
- 关闭不用的端口与服务,备份文件不要放在网站目录里。
五、复检:确认真的干净了
清理完成后,用在线检测再跑一遍,确认已知漏洞和后门都清掉了;同时到搜索引擎提交死链、申请恢复正常收录。
先跑一遍全站体检,看看还剩哪些洞
输入网址,10 分钟出中文报告:SQL注入/XSS、13500+ 漏洞库、弱口令、.git/.env 泄露、后门检测等 40+ 项,每条附修复建议。新用户有 1 次免费检测机会。
🚀 免费开始检测