![]()
有人一次性收购了 30 个 WordPress 插件,并在全部插件中植入了后门。
作者 | Austin Ginder 编译 | 苏宓
出品 | CSDN(ID:CSDNnews)
30 余款插件被批量植入后门、斥资六位数、长达 8 个月未被察觉、甚至借助以太坊智能合约绕过传统安全拦截,一场隐蔽的 SEO 劫持与远程入侵事件于近日被安全研究员 Austin Ginder 披露出来。
而就在一周前,他才曝光过一起针对一款名为 Widget Logic 的 WordPress 插件的供应链攻击事件:一款原本口碑可靠的插件,在被新收购方接手后,遭植入恶意代码。
如今同类事件再度上演,且本次波及规模要大得多,最终导致 WordPress.org 紧急下架并封禁 31 款插件。
![]()
![]()
起因:一名客户发现了一条安全通知
发现这个后门也属偶然,一切源于 WordPress 后台的一条安全预警。Austin Ginder 在博客上写道,他们的一位客户给他发了一条消息反馈,称其客户站点的 WordPress 仪表盘弹出了风险提示。该通知由 WordPress.org 插件官方团队推送,警告一款名为 Countdown Timer Ultimate 的插件存在高危代码,可能导致未授权第三方非法入侵网站。
随后,Austin Ginder 介入并展开了更深入的安全审计,逐步揭开了这起攻击的完整链条。
他指出,事发后,WordPress.org 已强制将这款插件升级至 2.6.9.1 版本,官方更新本应清除恶意程序,但实际损害早已形成。
![]()
恶意程序藏匿核心配置文件
调查发现,恶意代码被秘密植入站点核心配置文件 wp-config.php 中。
问题源头来自插件内置的 wpos-analytics 模块,该模块会主动向 analytics.essentialplugin.com 发起远程联网请求,下载名为wp-comments-posts.php的后门文件。
该文件刻意仿冒 WordPress 系统核心文件wp-comments-post.php,极具迷惑性,随后利用其后门能力,向 wp-config.php 注入一大段恶意 PHP 代码。
此次注入的恶意程序设计极为精巧:它会从远程命令与控制服务器(C2 服务器)拉取垃圾外链、跳转劫持规则以及虚假页面内容;并且采用定向投放机制,仅向谷歌爬虫展示垃圾内容,网站管理员日常访问完全无法察觉异常。
整件事最离谱的细节在于——攻击者通过以太坊智能合约解析 C2 域名,调用区块链公共 RPC 节点完成域名解析。传统的域名关停、解析拦截手段对此完全失效,攻击者只需更新智能合约地址,就能随时切换新的控制域名,持久化维持入侵通道。
![]()
官方强制更新治标不治本
WordPress.org 推送的 2.6.9.1 版本,仅封禁了插件远程联网的外联机制,彻底切断恶意模块的通信通道,却完全没有清理已经写入 wp-config.php 的注入代码。
这也意味着,网站的 SEO 垃圾注入漏洞依旧存续,隐藏违规内容仍在持续投放给谷歌爬虫。
![]()
![]()
通过备份溯源取证,精准锁定了恶意代码的注入时间窗口
Austin Ginder 表示,其平台 CaptainCore 会采用 restic 工具每日自动备份站点数据,他从八份不同时间的备份中提取 wp-config.php,以文件大小为参照,用二分比对的方式逐一排查异常。
![]()
经核实,恶意注入行为发生在 2026 年 4 月 6 日 04:22 至 11:06 之间,整个漏洞暴露窗口期为 6 小时 44 分钟。
![]()
后门潜伏八月,长期静默蛰伏
追溯插件完整迭代记录(共计939次快速保存快照)可以发现,这款插件自2019年1月就部署在该网站中。多年以来,wpos-analytics 模块仅作为合规的数据分析授权功能正常运行,无任何异常。
Austin Ginder 指出,转折点出现在2025年8月8日发布的 2.6.7 版本。该版本更新日志仅标注“适配 WordPress 6.8.2 版本兼容性”,实则暗中新增191行恶意代码,其中包含一处 PHP 反序列化后门。对应文件 class-anylc-admin.php 代码行数,直接从473行扩增至664行。
新增恶意代码主要包含三项高危功能:
1. 新增 `fetch_ver_info()` 方法,通过远程读取攻击者服务器数据,并将返回内容交由反序列化函数处理;
2. 新增 `version_info_clean()` 方法,可执行任意动态函数调用,调用参数、函数名称全部由远程恶意数据控制;
3. 开放无需身份验证的 REST API 接口,关闭权限校验。
这套组合漏洞属于典型的任意代码执行漏洞,远程攻击者可完全控制调用函数、传入参数等全部执行逻辑。该后门完成植入后,整整静默潜伏 8 个月,最终在 2026 年 4 月 5 日至 6 日被批量激活利用。
![]()
插件打包出售,收购方蓄意投毒
这起安全事件的核心诱因,是整套插件资产的低价转手交易。
该系列插件最初由印度开发团队打造,核心成员包括 Minesh Shah、Anoop Ranawat 与 Pratik Jain。团队约2015年以 WP Online Support 为品牌开发 WordPress 插件,后续更名为 Essential Plugin,逐步打造出30余款免费插件,并配套推出付费增值版本,形成完整产品矩阵。
2024 年末,该团队营收下滑 35%~45%,创始人 Minesh 随即在 Flippa 平台挂牌,打包出售整套插件业务与品牌资产。
最终,一位化名「Kris」的买家以六位数美元价格完成收购。公开资料显示,该买家长期涉足 SEO 灰产、加密货币以及网络博彩营销领域。Flippa 平台还曾在 2025 年 7 月,将这笔交易作为经典商业收购案例公开报道。
完整时间线梳理
2015 年 2 月
wponlinesupport.com 域名注册,团队正式开启 WordPress 插件开发业务。
2016 年 10 月
核心插件 Countdown Timer Ultimate 由开发者 anoopranawat 正式上架 WordPress.org 插件商城。
2021 年 8 月
essentialplugin.com 域名注册,团队品牌从 WP Online Support 全面升级为 Essential Plugin。
2024 年末
业务营收大幅缩水,创始人挂牌打包出售全部插件资产。
2025 年初
灰产背景买家 Kris 通过 Flippa 完成收购,全盘接手 Essential Plugin 所有产品。
2025 年 5 月 12 日
注册全新的 WordPress.org 开发者账号,用于后续插件版本提交。
2025 年 5 月 14 日-16 日
原官方开发账号完成最后一次代码提交,代码作者标识被批量篡改。
2025 年 8 月 8 日
新账号首次提交版本更新,发布暗藏反序列化远程执行后门的 2.6.7 版本,更新日志刻意造假隐瞒恶意修改。
2025 年 8 月 30 日
essentialplugin.com 域名 WHOIS 信息被篡改,注册人改为苏黎世的 Kim Schmidt,绑定 ProtonMail 隐私邮箱,隐匿真实身份。
2026 年 4 月 5 日- 6 日
后门被批量植入,恶意控制端域名开始向所有搭载该系列插件的网站推送恶意载荷。
2026 年 4 月 7 日
WordPress.org 官方一日之内,永久下架封禁 Essential Plugin 旗下全部 31 款插件。
2026 年 4 月 8 日
官方全网强制推送插件自动更新至 2.6.9.1,通过添加终止代码、注释屏蔽高危后门函数,临时封堵漏洞。
值得注意的是,收购方接手后的第一次代码提交,就直接植入了高危后门,全程蓄谋已久。
![]()
三十余款插件集体下架
2026 年 4 月 7 日,WordPress 官方插件团队采取硬核处置措施,永久下架 Essential Plugin 开发者名下所有产品,当日封禁插件数量超 30 款。
以下为已确认受影响的插件列表:
Accordion and Accordion Slider — accordion-and-accordion-slider
Album and Image Gallery Plus Lightbox — album-and-image-gallery-plus-lightbox
Audio Player with Playlist Ultimate — audio-player-with-playlist-ultimate
Blog Designer for Post and Widget — blog-designer-for-post-and-widget
Countdown Timer Ultimate — countdown-timer-ultimate
Featured Post Creative — featured-post-creative
Footer Mega Grid Columns — footer-mega-grid-columns
Hero Banner Ultimate — hero-banner-ultimate
HTML5 VideoGallery Plus Player — html5-videogallery-plus-player
Meta Slider and Carousel with Lightbox — meta-slider-and-carousel-with-lightbox
Popup Anything on Click — popup-anything-on-click
Portfolio and Projects — portfolio-and-projects
Post Category Image with Grid and Slider — post-category-image-with-grid-and-slider
Post Grid and Filter Ultimate — post-grid-and-filter-ultimate
Preloader for Website — preloader-for-website
Product Categories Designs for WooCommerce — product-categories-designs-for-woocommerce
Responsive WP FAQ with Category — sp-faq
SlidersPack – All in One Image Sliders — sliderspack-all-in-one-image-sliders
SP News And Widget — sp-news-and-widget
Styles for WP PageNavi – Addon — styles-for-wp-pagenavi-addon
Ticker Ultimate — ticker-ultimate
Timeline and History Slider — timeline-and-history-slider
Woo Product Slider and Carousel with Category — woo-product-slider-and-carousel-with-category
WP Blog and Widgets — wp-blog-and-widgets
WP Featured Content and Slider — wp-featured-content-and-slider
WP Logo Showcase Responsive Slider and Carousel — wp-logo-showcase-responsive-slider-slider
WP Responsive Recent Post Slider — wp-responsive-recent-post-slider
WP Slick Slider and Image Carousel — wp-slick-slider-and-image-carousel
WP Team Showcase and Slider — wp-team-showcase-and-slider
WP Testimonial with Widget — wp-testimonial-with-widget
WP Trending Post Slider and Widget — wp-trending-post-slider-and-widget
所有相关插件已被永久下架。当前在 WordPress.org 上搜索该作者名称已无任何结果,插件页面完全消失。与此同时,analytics.essentialplugin.com 接口也已失效,返回内容仅为:{“message”:“closed”}。
![]()
类似的攻击其实早已发生过
2017 年,一名使用化名 “Daley Tias” 的买家以 1.5 万美元收购了 Display Widgets 插件(约 20 万次安装),随后在代码中植入了网贷垃圾广告。此后,该攻击者又以相同手法陆续入侵了至少 9 个插件。
本次 Essential Plugin 事件,本质上只是同一套攻击剧本的放大版:超过 30 个插件、数十万活跃安装量,以及一个通过公开市场完成收购、但在数月内被武器化的八年历史项目。
在实际处置中,相关环境中的插件已经全部完成修复。WordPress.org 的强制更新虽然加入了 return; 语句,用于阻断插件的“回连”功能,但本质上只是临时性修补措施,并未移除 wpos-analytics 模块本体及其全部代码逻辑。
因此,进一步的处理方式是直接重构插件版本,将整个后门模块彻底剥离,并重新打包生成干净版本。
在实际排查中,Austin Ginder 在 22 个客户站点的 26 个 Essential Plugin 插件中,确认有 12 个被使用,其中 10 个已完成修复。其余部分要么本身不包含后门模块,要么属于原作者的“pro”分支版本。对应的加固版本已统一托管至 B2 存储,可用于持续分发与替换更新。
wp plugin install https://plugins.captaincore.io/post-grid-and-filter-ultimate-1.7.4-patched.zip --force每个修复版本都会彻底移除 wpos-analytics 目录,从主插件文件中删除对应的加载函数,并将版本号更新为 -patched 标识。插件本身的功能在此过程中依然可以正常运行。
通过 Claude Code 可以相对快速地完成修复流程。只需提供本文作为上下文,并指定需要处理的插件,它即可按相同方式移除 wpos-analytics 模块,这一模式在 Essential Plugin 系列中基本完全一致。
具体处理步骤如下:
从插件目录中删除 wpos-analytics/ 文件夹;
在主插件 PHP 文件中移除加载函数代码块(可通过搜索 “Plugin Wpos Analytics Data Starts” 或 wpos_analytics_anl 定位);
将插件的 Version 头信息更新,添加 -patched 标识以区分修复版本;
最后重新打包压缩,并通过命令强制覆盖安装(wp plugin install your-plugin-patched.zip –force)。
完成插件层面的处理后,还需要重点检查 wp-config.php 文件。
恶意代码通常会追加在 require_once ABSPATH . wp-settings.php; 同一行末尾,因此很容易在快速浏览时被忽略。如果该文件体积明显异常增大(注入内容通常会增加约 6KB),基本可以判断站点已经遭到实际入侵,此时仅修复插件是不够的,还需要进行全站级别的彻底清理。
![]()
WordPress 插件生态的信任危机
短短两周内,连续两起大规模插件供应链攻击接连爆发,手法如出一辙:收购一款拥有稳定用户群的知名插件,获取其在 WordPress.org 的提交权限,然后注入恶意代码。
Essential Plugin 这笔收购全程完全公开,买家的灰产从业背景清晰可查。然而,这笔收购却几乎没有经过任何来自 WordPress.org 的审查就顺利完成。
目前,WordPress.org 并没有针对插件所有权转移的标记或审核机制:当控制权发生变更时,用户不会收到任何“所有权变更”的通知;开发者账号更换后,也不会触发额外的代码审查流程。尽管插件团队在攻击被发现后反应迅速,但从后门植入到最终被察觉,中间已经过去了整整 8 个月。
对于正在运营 WordPress 站点的用户而言,建议尽快对所有站点进行排查,确认是否使用了上述提到的 26 个插件。一旦发现,应立即进行修复或直接移除。同时,务必检查核心配置文件 wp-config.php,确认是否存在异常代码。
来源:https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/
【活动分享】"48 小时,与 50+ 位大厂技术决策者,共探 AI 落地真路径。"由 CSDN&奇点智能研究院联合举办的「全球机器学习技术大会」正式升级为「奇点智能技术大会」。2026 奇点智能技术大会将于 4 月 17-18 日在上海环球港凯悦酒店正式召开,大会聚焦大模型技术演进、智能体系统工程、OpenClaw 生态实践及 AI 行业落地等十二大专题板块,特邀来自BAT、京东、微软、小红书、美团等头部企业的 50+ 位技术决策者分享实战案例。旨在帮助技术管理者与一线 AI 落地人员规避选型风险、降低试错成本、获取可复用的工程方法论,真正实现 AI 技术的规模化落地与商业价值转化。这不仅是一场技术的盛宴,更是决策者把握 2026 AI 拐点的战略机会。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.