WordPress 站被挂马,常见三个入口
入口一:三个月没更新的插件
最常见。WordPress 的漏洞大多不在核心,在插件。一个 2021 年停更的表单插件,只要有一个文件上传漏洞,攻击者就能拿到 shell。
典型症状:/wp-content/uploads/ 下多出奇怪的 .php 文件;页面底部被插入一段 base64 编码的脚本;Search Console 提示“网站被入侵”。
- 每月检查一次插件更新,停更超过 12 个月的插件直接换掉;
- 不装“破解版”插件和主题——这是最大的后门来源,没有之一;
- 插件数量控制在 15 个以内,能代码实现的就不装插件。
入口二:admin / 123456
暴力破解依然有效,尤其是没装防护的站。我们见过一个站,日志里一天有 4,000 次登录尝试,全部来自同一个 IP 段。
- 不要用
admin做用户名,改掉它(WordPress 允许改); - 密码 16 位以上,用密码管理器生成;
- 装登录限制插件,5 次失败锁 15 分钟;
- 能上两步验证就上,成本几乎为零。
入口三:主题里被人塞了后门
这个最隐蔽。客户从某站下载了一个“免费高级主题”,主题的 functions.php 里藏了一段代码,看起来像正常的初始化,实际会从远程拉取指令执行。
判断方法:搜索主题目录里有没有 eval(、base64_decode(、gzinflate( 这类函数;对比官方版本的文件哈希。
已经被挂了怎么办
- 先备份现场(打包整个站点和数据库),别急着删;
- 用 Wordfence 或 Sucuri 扫一遍,拿到感染文件清单;
- 比对核心文件哈希(WordPress 后台有“重新安装核心”功能);
- 换掉所有密码、数据库密码、FTP 密码、API 密钥;
- 清理后提交 Search Console 复审,通常 3–7 天。
如果站里没有重要内容,重装比清理快。我们一般建议:有备份就回滚到感染前,然后堵住入口——不然清完还会再来一次。
我们的日常防护清单
| 项目 | 频率 | 做法 |
|---|---|---|
| 核心与插件更新 | 每月 | 先在测试站跑一遍再上生产 |
| 异地备份 | 每天 | 数据库 + 文件,保留 30 天 |
| 登录防护 | 常驻 | 限制次数 + 两步验证 |
| 文件完整性 | 每周 | 核心文件哈希比对 |
| 安全扫描 | 每周 | 自动扫描 + 人工看报告 |