You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress数据库后门代码注入:如何移除及彻底修复?

解决wp_posts表后门代码批量注入问题

嘿,Michael,我太懂你手动清理113条记录的崩溃感了!直接给你实用的SQL方案,再补点防复发的建议:

一、批量清理后门代码的SQL语句

首先务必先备份整个数据库,避免操作失误导致数据丢失!

情况1:恶意代码以固定字符串结尾(比如包含cutwin的脚本)

如果恶意代码是统一格式的一段(比如末尾的<script src="xxx" cutwin></script>),可以用REPLACE精准替换:

UPDATE wp_posts
SET post_content = REPLACE(post_content, '【这里替换成你要删除的完整恶意代码】', '')
WHERE post_content LIKE '%cutwin%';

情况2:恶意代码格式不固定但包含cutwin标记

如果恶意代码是动态生成但都带cutwin,可以用正则替换(适合MySQL 8.0+/MariaDB 10.0.5+版本):

UPDATE wp_posts
SET post_content = REGEXP_REPLACE(post_content, '<script.*cutwin.*?</script>', '', 1, 0, 's')
WHERE post_content REGEXP 'cutwin';

解释:这个正则会匹配所有包含cutwin的script标签,'s'参数让.能匹配换行符,避免恶意代码换行导致匹配失败。

情况3:旧版本数据库(不支持REGEXP_REPLACE)

如果你的数据库版本较低,可以用SUBSTRING_INDEX结合定位标记来截断:

UPDATE wp_posts
SET post_content = SUBSTRING_INDEX(post_content, 'cutwin', 1)
WHERE post_content LIKE '%cutwin%';

注意:这个方法会把cutwin及之后的所有内容删掉,如果cutwin在内容中间会误删正常内容,仅适合恶意代码绝对在末尾的情况。

二、防复发关键步骤

光清理没用,得堵住漏洞:

  • 立刻更新WordPress核心、所有插件和主题到最新版本,修补已知漏洞
  • 检查服务器上的PHP版本,升级到支持的稳定版本(比如PHP 8.1+),禁用危险函数(如exec、eval,可以在php.ini里设置disable_functions)
  • 给数据库用户、WordPress后台用户设置强密码,避免弱口令被爆破
  • 检查服务器文件权限:WordPress核心文件设为644,目录设为755,禁止写入权限给不必要的用户
  • 配置Wordfence的高级防护:启用实时文件扫描、数据库活动监控,把wp_posts表的修改加入告警规则,一旦有批量修改立刻触发通知

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:24:03