WordPress站点遭攻击后域名下加载陌生站点 求排查清理方案
WordPress恶意注入问题完整处置方案
紧急止损操作
- 立刻将站点切换为维护模式,禁止所有非管理员访问,避免恶意内容继续被搜索引擎抓取、普通用户访问
- 完整备份当前所有站点文件、数据库,即使包含恶意内容也要先备份,防止后续操作失误无法回滚
- 删除已发现的3000行恶意PHP文件,暂时将站点根目录权限设置为只读,临时阻断恶意脚本写入新文件的路径
问题原理说明
你看不到FTP有对应文件、数据库无对应内容,但异常链接可正常访问,是因为恶意脚本修改了站点重写规则,所有异常路径的请求都会被转发到你找到的这类恶意PHP文件,由脚本动态生成无关的商品页面内容返回,不会生成实体文件也不会写入数据库。
全面排查清理(必须完成FTP全量排查,无例外)
文件排查要点
- 重点扫描三个目录:
wp-content/plugins、wp-content/themes、wp-content/uploads,90%以上的WordPress恶意代码都会藏匿在这三个路径下,同时检查所有WordPress核心目录外的陌生文件 - 筛选所有修改时间在攻击发生时段前后的文件,和官方WordPress、你正在使用的主题、插件的原版文件做对比,所有和原版校验值不一致的文件都要逐一排查,确认是恶意文件直接删除
- 全局搜索所有包含
eval、base64_decode、gzinflate、str_rot13这类混淆函数的PHP文件,这类3000行级别的恶意脚本普遍会用到混淆手段,除极少数插件正常功能会用到外,出现这类特征的文件基本都是恶意文件 - 检查根目录下的
.htaccess文件,恶意脚本基本都会修改重写规则实现动态内容响应,直接将.htaccess重置为WordPress默认的重写规则即可
数据库排查要点
不要采信之前排查无异常的结论,重新扫描所有库表:
- 排查
wp_options表中的active_plugins字段,确认是否存在你未主动安装的隐形恶意插件 - 排查所有文章、自定义字段内容,确认是否被植入隐藏外链或恶意代码
- 排查数据库内所有管理员账号,删除所有你不认识的陌生管理员账号
后门封堵加固操作
- 立刻重置所有关联账号密码:WordPress后台管理员密码、FTP账号密码、数据库密码、主机控制面板密码,全部设置为16位以上包含大小写字母、数字、特殊字符的强密码
- 卸载所有闲置的主题、插件,仅保留正在使用的组件,且全部升级到官方最新正式版本,同时将WordPress核心也升级到最新正式版
- 安装WordPress专用安全插件,开启后台登录次数限制、禁止
wp-content/uploads目录下PHP文件执行的规则,从应用层面阻断常见注入攻击路径 - Cloudflare除封禁高风险地区IP外,额外添加WAF规则,拦截包含PHP注入、恶意文件上传特征的请求
- 登录各大搜索引擎站长平台,提交恶意页面的死链删除请求,将已被收录的恶意内容从搜索结果中移除
关于是否需要进一步排查FTP的说明
必须完成全量FTP文件排查,这类攻击通常会同时留置多个后门,仅删除你已发现的单个恶意文件,很快就会被攻击者重新植入新的恶意代码,必须扫描整个站点目录的所有文件,确认没有漏网的恶意脚本才算完成清理。
内容的提问来源于stack exchange,提问作者Ádám Szántai
相关产品推荐
相关产品推荐

