ZCyberNews
English
漏洞••9 分钟阅读

WordPress 供应链攻击通过 Flippa 销售感染 30 余款插件

一名恶意买家利用 Flippa 市场收购了一家插件开发商,向安装量达数十万的 30 多款 WordPress 插件中注入后门,以部署隐藏的 SEO 垃圾内容。

WordPress 供应链攻击通过 Flippa 销售感染 30 余款插件

Indicators of Compromise (1)

Type ↑Value DescriptionConf
IP2.6.9.1Extracted from source materialhigh

一起重大的 WordPress 供应链攻击已波及超过 30 款插件,涉及数十万活跃安装量。此次事件源于攻击者通过 Flippa 市场收购了一家合法的开发者业务。新所有者仅被称为“Kris”,其注入了一个复杂的后门,该后门潜伏八个月后激活,发起了一场向网站注入 SEO 垃圾内容的攻击活动,这些内容对网站所有者隐藏,但对搜索引擎可见。WordPress.org 因此在一天内永久关闭了所有受影响的插件。该事件凸显了开源插件生态系统中的一个关键漏洞:所有权变更可能引入恶意代码,却不会触发安全审查。

核心插件后门与攻击链剖析

此次攻击始于 2025 年 8 月 核心插件 的出售,该实体原名为 WP Online Support,后进行了品牌重塑。买家对插件仓库的首次提交,伪装成针对 WordPress 6.8.2 的兼容性更新,实则引入了一个远程代码执行后门。根据取证分析,像 Countdown Timer Ultimate 这类插件的 2.6.7 版本,向一个名为 class-anylc-admin.php 的文件中添加了 191 行恶意代码。

该后门通过一个名为 wpos-analytics 的模块运作,该模块此前曾作为合法的分析数据选择加入系统。新代码建立了三个关键组件:

  1. 一个 fetch_ver_info() 方法,使用 file_get_contents() 从攻击者控制的域名 analytics.essentialplugin.com 获取数据,并将响应传递给 @unserialize()。
  2. 一个 version_info_clean() 方法,旨在执行结构为 @$clean($this->version_cache, $this->changelog) 的函数调用,其中函数名和参数完全由反序列化的远程数据控制。
  3. 一个未经身份验证的 REST API 端点,注册时使用 permission_callback: __return_true,为远程触发提供了直接途径。

这种设置形成了一个典型的任意函数调用漏洞。该后门一直处于非活动状态,直到 2026 年 4 月 5 日至 6 日,命令与控制服务器开始分发恶意载荷。该载荷是一个名为 wp-comments-posts.php 的文件——故意拼错核心 WordPress 文件 wp-comments-post.php——该文件被下载并执行。其主要操作是将一大段经过混淆的 PHP 代码直接注入网站的 wp-config.php 文件。这种持久化机制确保了入侵在插件更新后依然存在。

影响及利用以太坊智能合约的新型 C2 技术

注入到 wp-config.php 中的代码促成了大规模的 SEO 垃圾内容操作。它从 C2 服务器获取链接、重定向和虚假页面内容,并仅将这些内容展示给被识别为 Googlebot 的用户代理,使得普通网站访问者和管理员无法察觉此次入侵。这种被称为“伪装”的技术,旨在操纵搜索引擎排名而不惊动网站所有者。

该活动在技术层面最显著的特点是其对关停的抵御能力。研究人员发现,恶意软件通过公共区块链 RPC 端点查询以太坊智能合约来解析其 C2 域名。这种方法意味着攻击者可以随时更新智能合约以指向新的域名,从而使传统的域名扣押或关停请求失效。该基础设施的灵活性给防御者带来了重大挑战。

入侵规模巨大。WordPress.org 插件团队于 2026 4 月 7 日永久关闭了来自 核心插件 作者的至少 30 款免费插件。这些插件功能涵盖滑块、倒计时器、图库和常见问题解答等,总计代表着数十万的活跃安装量。任何在 2026 年 4 月之前未更新这些插件的网站都可能受到初始感染。关键的是,尽管 WordPress.org 在 4 月 8 日强制自动更新到 2.6.9.1 版本以中和插件的“回连”功能,但此更新并没有移除 wp-config.php 中的恶意注入。受感染的网站在插件更新后仍然处于活跃感染状态,需要手动修复。

检测指标与手动修复步骤

防御者应立即清点其 WordPress 安装中是否包含来自受影响的核心插件产品组合的任何插件。已关闭的插件包括但不限于:

  • accordion-and-accordion-slider
  • album-and-image-gallery-plus-lightbox
  • countdown-timer-ultimate
  • popup-anything-on-click
  • sp-faq
  • sp-news-and-widget
  • timeline-and-history-slider
  • wp-blog-and-widgets
  • wp-testimonial-with-widget

WordPress.org 的强制更新添加了 return; 语句来短路恶意函数,但 wpos-analytics 模块仍然存在。彻底的清理需要完全移除该模块。管理员可以通过以下方式创建修补版本:

  1. 从插件文件夹中删除 /wpos-analytics/ 目录。
  2. 移除主插件 PHP 文件中的加载器函数块(通常可通过类似“Plugin Wpos Analytics Data Starts”的注释或名为 wpos_analytics_anl 的函数来识别)。
  3. 递增插件头中的版本号。

最关键的检测步骤是检查 wp-config.php 文件。恶意软件在 require_once ABSPATH . 'wp-settings.php'; 所在行的同一行追加了大约 6KB 的混淆代码。简单的文件大小检查即可发现问题;干净的 wp-config.php 通常约为 3-4KB,而受感染的文件会膨胀到超过 9KB。如果存在此注入,网站需要进行全面的安全审计,因为该后门可能已被用于部署额外的载荷。历史上的 C2 域名 analytics.essentialplugin.com 现在返回 {"message":"closed"},但日志中任何指向该主机的出站连接都是明确的入侵指标。

WordPress 生态系统防御的关键要点

  • 立即审计受影响插件并检查 wp-config.php。 系统管理员必须扫描所有托管的 WordPress 站点,查找列出的核心插件标识符。仅更新插件是不够的;必须手动检查 wp-config.php 文件是否被追加了恶意代码,任何感染都需要进行全面的清理。
  • 将插件所有权变更视为安全风险。 此次攻击与[2017 年的事件]([wordpress plugin supply chain attack])类似,当时一个被购买的插件被武器化。WordPress.org 生态系统目前缺乏标记或审查插件所有权变更的机制。组织应监控关键插件的提交历史和作者变更,因为维护者的突然变更可能预示着供应链攻击。
  • 实施强健的备份和文件完整性监控。 此次攻击是通过详细的备份取证发现的,通过比较每日快照中 wp-config.php 文件的大小来识别。保持频繁、不可变的备份,并对 wp-config.php 等核心文件实施文件完整性监控,对于检测未经授权的修改和实现精确恢复至关重要。
  • 发现感染即假设已失陷并进行全面调查。 wp-config.php 注入的存在表明后门曾经活跃。防御者应假设攻击者拥有不受限制的访问权限,并搜索在入侵窗口期内可能安装的额外后门、未经授权的管理员用户或其他恶意脚本。

订阅更新

将最新的网络安全资讯直接发送到您的邮箱。

标签:#wordpress#supply-chain-attack#flippa#essential-plugin#wp-online-support#seo-spam#backdoor#plugin-vulnerability

相关文章