本文约 2,689 字,预计阅读 7 分钟。文中命令与配置均经过实测,可直接参考执行。
引言
你打开 WordPress 后台的「用户 → 所有用户」,忽然发现列表里多了几个从没见过的账号,邮箱是临时域名或随机字符,角色却是「管理员」,注册时间还都集中在某个深夜。更糟的情况是:你能登录,但改不了某些设置,甚至发现自己被降权了。这不是系统出错,而是网站已经被入侵——攻击者拿到权限后,第一件事往往就是新建一个自己的管理员账号当「后门」,即使你改了原管理员密码,他照样能从这个小号进来。陌生管理员账号是入侵的明确信号,必须尽快排查并清理。本文教你先在后台快速识别,再进数据库从根上删除,最后堵住被反复添加的漏洞,把控制权夺回来。
故障原因分析
- 攻击者入侵后主动添加后门账号。拿到权限后用
wp_insert_user或直接在后台新建管理员,账号名常带随机串或与现实无关,邮箱是自建的临时邮箱。
- 用户注册功能被滥用后提权。站点开放了注册,攻击者注册普通订阅者账号,再借助漏洞或数据库写入把角色提升为管理员。
- 插件/主题漏洞直接写入用户表。某些存在 SQL 注入或任意用户创建漏洞的旧插件,能被远程调用批量插入账号。
- 数据库被直接篡改。攻击者通过 phpMyAdmin、远程数据库或窃取的凭据,直接往
wp_users与wp_usermeta插入记录。
- 从站点备份或模板里带入。用了别人的「整站包」或被盗的数据库备份,里面本就混着原作者的隐藏管理员账号。
分步解决方案
方法一:后台先盘点,比对可疑账号
进入「用户 → 所有用户」,按「角色」筛选管理员,逐一看:用户名是否陌生、邮箱域名是否可疑、注册时间是否集中在异常日期、是否有「上次登录」记录。把你认识的管理员(自己、同事)先记下来,其余一律列为待查。注意:正常后台删除需要确认,但入侵账号可能正被用于登录,删除前先别急,先做下面的收紧操作。
方法二:先断掉攻击者,再动手删
直接删账号有可能激怒还在线的攻击者触发删站,稳妥顺序是:立即修改所有已知管理员的密码;修改 wp-config.php 里八组安全密钥让全部会话失效;临时把网站切到维护模式或限制后台访问 IP。做完这些,攻击者的登录态失效,再处理账号才安全。
方法三:用数据库精准定位所有管理员
命令行登录数据库后,一条 SQL 就能列出全部管理员及其信息:
SELECT u.ID, u.user_login, u.user_email, u.user_registered, um.meta_value
FROM wp_users u
JOIN wp_usermeta um ON u.ID = um.user_id
WHERE um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%administrator%';
如需按注册时间排序锁定可疑批次:
SELECT ID, user_login, user_email, user_registered
FROM wp_users
ORDER BY user_registered DESC
LIMIT 30;
注意表前缀,非默认前缀请替换成 wp-config.php 里 $table_prefix 的实际值。
方法四:安全删除可疑账号
在后台删除:勾选可疑用户 → 选择「删除」→ 系统会让你决定其文章是「删除」还是「转移给其他用户」。除非文章是你自己的,否则一律选择「删除所有内容」,避免把攻击者留的内容转到自己名下。
数据库删除要成对操作,wp_users 删完必须同步删 wp_usermeta:
-- 假设可疑账号 ID 为 99
DELETE FROM wp_users WHERE ID = 99;
DELETE FROM wp_usermeta WHERE user_id = 99;
只删 wp_users 不删 wp_usermeta 会留下孤立权限记录,属于清理不彻底。
方法五:堵住账号被再次添加的入口
清理完必须封堵来源,否则很快又被加上。收紧措施包括:关闭「设置 → 常规」里的「任何人都可以注册」,或把新用户默认角色设为「订阅者」;给注册加验证码和邮箱验证;升级所有主题插件到最新版,修补能被利用的创建用户漏洞;检查 functions.php 里有没有可疑的 wp_create_user、wp_insert_user、add_role 调用。
// 若发现类似这样的可疑代码,多半是后门,直接删除
add_action( 'init', function () {
wp_insert_user( array( 'user_login' => 'backdoor_xx', 'user_pass' => 'xxx', 'role' => 'administrator' ) );
} );
方法六:全盘复查后门与计划任务
新增账号者往往同时留下了后门文件。用安全插件(Wordfence / Sucuri)全盘扫描,并按站内《网站被挂马》一文的方法查最近修改的 php 文件和特征函数。另外检查数据库 wp_options 里 cron 选项有没有被塞入恶意计划任务,攻击者常用它定时重建账号。
常见踩坑点
- 只删账号不换密钥。攻击者会话还在,你前脚删他后脚又建一个,必须先改密码、换安全密钥让其掉线。
- 只删
wp_users忘了wp_usermeta。孤立权限记录残留,有时会引发角色错乱,务必成对删除。
- 误删管理员把自己锁死。删之前留一个自己确定可用的管理员账号,别把唯一的自己删了。
- 关联内容随手保留。删账号时选了「保留文章」,等于把攻击者的推广内容留在站内,应选「删除所有内容」。
- 不查来源。清完账号却不堵注册漏洞、不升级插件,过几天问题复现,等于白干。
- 忽略计划任务与后门文件。只处理账号不排查
cron和 php 后门,攻击者仍能自动重建账号。
总结
后台冒出陌生管理员账号,几乎可以断定网站已被入侵并植入后门。正确姿势是先收紧止血——改密码、换 wp-config.php 安全密钥让攻击者掉线,再用 SQL 从 wp_users 和 wp_usermeta 里把所有管理员列出来逐一核对,删除可疑账号并清空其内容,最后关闭开放注册、升级主题插件、排查后门文件和计划任务。整个过程最怕「删了就完事」,不堵入口就会被反复添加。把 WordPress 陌生管理员账号排查清理做彻底,才算真正把网站控制权收回来。
