跳至主要内容
全部往期

我们基础设施上针对 WordPress REST API 批处理端点的探测增至原来的三倍以上

10月26日当周,向我们基础设施请求 WordPress REST API 批处理端点(wp2shell 漏洞链的入口)的来源数量升至此前周均值的 3.3 倍。扫描器对备份文件、调试页面和应用内部接口的请求也更加频繁。

291 Intercept 是我们的每周报告,记录自动化扫描器在我们自有基础设施上瞄准了哪些目标,方便您对照检查自己的系统。每期报告所涵盖的那一周,至少已在七天前结束。

10月26日当周,我们基础设施上最明显的变化,是针对某个 WordPress 地址的请求激增:/wp-json/batch/v1。约有 40 个来源请求了该地址,是此前三周周均值的 3.3 倍。wp2shell 正是从这个端点开始的:它是 WordPress 核心中由两个漏洞组成的利用链,可让未登录的攻击者在站点上执行代码。

这一周整体也更为繁忙:约 620 个来源探测了我们面向互联网的基础设施,比此前三周的平均值高 10%。WordPress 仍是主要目标,66% 的来源针对 WordPress 登录页、XML-RPC 或插件路径,增长 20%。扫描器也更频繁地请求应用中本应保持私密的部分。

wp2shell 是什么

/wp-json/ 是 WordPress REST API 的根路径,/wp-json/batch/v1 则是其批处理器,用于将一组 API 请求合并处理。据 Rapid7 介绍,wp2shell 串联了两个漏洞:CVE-2026-63030 是该批处理器中的逻辑缺陷,CVE-2026-60137 是文章(posts)端点中的 SQL 注入。两者组合后,无需任何账户即可在 WordPress 6.9.0 至 6.9.4 以及 7.0.0 至 7.0.1 上执行代码。

该漏洞于 2026年7月17日公开。据 Rapid7 报告,CISA 已于 7月21日将其列入“已知被利用漏洞”(KEV)目录。修复版本为 6.9.5、7.0.2 和 7.1 Beta 2。

既然已有修复,为什么还要探测?扫描器并不需要每个站点都存在漏洞,只要有一部分就够了。一次请求对他们来说几乎没有成本,而任何仍在使用受影响版本的站点都值得再来一趟。

WordPress 扫描中的老面孔

一个由约 20 个来源组成、分布在少数几个国家的协同工具集,反复请求同一份包含十来个路径的清单。它在许多不同的目录名下请求同一个文件,例如 /wp/wp-includes/wlwmanifest.xml、/shop/wp-includes/wlwmanifest.xml 和 /wordpress/wp-includes/wlwmanifest.xml,同时还请求 /xmlrpc.php。

wlwmanifest.xml 是默认 WordPress 安装中自带的 Windows Live Writer 清单文件,在常见目录下请求它,是在尝试插件或主题漏洞利用之前发现 WordPress 站点的一种手段。XML-RPC 则是下一步:研究人员在 2015 年发现,其 system.multicall 方法可让攻击者在单个请求中尝试数百个密码。

遗留文件与内部接口

与此前三周相比,查找备份和转储文件的来源数量增长 73%,针对 Spring Boot actuator 等应用内部接口的来源增长 63%,请求 /phpinfo.php、/info.php 等诊断页面的来源增长 52%。由于来源总数同样有所增加,这些类别的占比变化要小一些:诊断页面在全部来源中的占比从平均 15% 升至 21%。下图展示了本周的六个类别,分别对比其本周的来源占比与此前三周的平均占比。

本周与前几周平均值对比
本周前 3 周平均值
备份与数据库转储
12%
9%
应用管理端点
13%
9%
调试与诊断页面
21%
15%
WordPress 登录页与文件
66%
61%
暴露的源代码(Git、SVN)
29%
24%
密钥与配置文件
33%
33%

针对各目标的独立来源占全部独立来源的百分比。由于一个来源可能同时针对多个目标,各项占比之和会超过 100%。

本周与前几周平均值对比
本周前 3 周平均值
备份与数据库转储12%9%
应用管理端点13%9%
调试与诊断页面21%15%
WordPress 登录页与文件66%61%
暴露的源代码(Git、SVN)29%24%
密钥与配置文件33%33%

/actuator/env 吸引了约 40 个来源,是此前平均值的 2.4 倍。在 Spring Boot 中,该端点会显示应用的配置属性。Spring 官方文档指出,默认情况下只有 health 可通过 HTTP 访问,且 env 的值默认会被脱敏;但如果开发者开放了该端点却未限制访问,它可能泄露凭据、API 密钥和内部设置。被遗忘的 WordPress 配置备份 /wp-config.php.bak 的来源数翻了一番,达到约 40 个。

另一个由约 20 个来源组成的工具集,在一轮扫描中混合了上述各类目标:/.env、/.git/config、/info.php、/config.json、/server-status 和 /debug/default/view。最后这个路径属于 Yii 2 调试器,它会显示会话数据、环境变量和数据库查询。Yii 指南称它通常只允许从 localhost 访问,但 9月30日公开的 CVE-2026-103475 涉及 yii2-starter-kit 4.2.0 及更早版本,其默认配置会向所有 IP 地址开放该调试器。

上周情况跟进

上一期提到,查找子目录中 .env 文件的扫描器有所增多。这一趋势仍在延续。/v2/.env 和 /old/.env 各吸引约 60 个来源,约为此前平均值的两倍;/production/.env 为 50 个,/storage/.env 为 40 个。总计有 200 个来源针对密钥和配置文件,增长 16%,与来源总数的增幅大致同步,因此其占比保持在 33%。作为参照,研究人员在 2月发布的报告中指出,有 12,088,677 个 IP 地址对外提供可公开访问的 .env 类文件。

上周我们重点报道的 Git 探测,占比有所回落,但仍高于此前水平。总计有 170 个来源查找源代码仓库,比三周平均值高 20%,不过其在全部来源中的占比从 37% 降至 29%。

谁在扫描

超过一半的来源(55%)来自云服务和托管网络,其中 DigitalOcean 和 Google Cloud 各占 20%;85% 的来源仅在一天内出现过。大多数来源还试图伪装成真人:82% 发送的标识字符串冒充普通浏览器,但 85% 的行为特征却与自动化程序一致,这层伪装可谓一戳即破。

沉寂下来的目标

对 /wp-content/plugins/hellopress/wp_filemanager.php 的请求原本平均每周约有 20 个来源,如今几乎归零,下降 79%。现在判断扫描器是否已转移目标还为时过早。/service-account.json 等云密钥文件大致保持稳定,约为 70 个来源。

应对建议

  • 检查您的 WordPress 版本。如果版本处于 6.9.0 至 6.9.4 或 7.0.0 至 7.0.1 之间,请立即升级到 6.9.5 或 7.0.2。
  • 彻底将 .env 文件移出公开目录,包括旧版本和带版本号的子目录。放在 Web 根目录的上一级才是安全的。
  • 删除备份和转储文件:凡是浏览器能访问到的位置,都不要留有 /database.sql 或 /wp-config.php.bak 这类文件。
  • 锁定内部接口。限制 Spring Boot actuator 端点的访问并保持 env 脱敏开启,移除 phpinfo 测试页面,并确保 Yii 调试器仅限 localhost 访问。
  • 如果站点上没有任何功能依赖 XML-RPC,请关闭 XML-RPC。

关于这些观测数据

本报告由 291 Group 的安全监控系统 291 Heat Seeker One 生成,该系统运行于我们自研的安全运营平台 291 Crossband 之上。报告仅涵盖访问 291 Group 自有面向互联网基础设施的流量。

所有数据均经过四舍五入;占比和变化按独立来源的数量而非请求数量计算;仅收录至少由 20 个独立来源呈现的模式。国家指来源服务器的所在地,不一定是其背后操作者的所在地。网络类型依据各网络的运营方判定;只会点名大型知名服务商。