Lukols-Dev/wp-cve-2026-63030-check

GitHub: Lukols-Dev/wp-cve-2026-63030-check

该工具通过被动版本检测与 REST 路由可达性探测,帮助运维人员快速筛查 WordPress 站点是否处于 wp2shell 漏洞链的受影响范围内。

Stars: 0 | Forks: 0

# wp2shell-check WordPress **"wp2shell"** 认证前 RCE 链的非侵入式暴露检查工具 (CVE-2026-63030 + CVE-2026-60137)。 ## 功能介绍 给定一个 URL,`wp2shell-check` 会: 1. 从主页的 `generator` meta 标签中读取 WordPress 版本(被动方式)。 2. 将其与受 wp2shell 漏洞链影响的版本进行比较。 3. 向 REST 批量 endpoint (`?rest_route=/batch/v1`) 发送一个良性的探测请求,以检查 REST 批量路由是否可达。 4. 打印一行判定结论。 它专为快速的服务器群分类筛选而设计:_我的哪些站点处于受影响版本且 REST 可达?_ ## 它**不会**做什么 - 它**不会**发送 SQL 注入 payload 或触发路由混淆 bug。 - 它**不会**确认漏洞的可利用性。路由探测仅告知您批量路由已注册并在验证输入——这对于几乎所有默认安装且启用了 REST API 的站点都是如此(批量 endpoint 自 WordPress 5.6 起已进入核心代码库)。**版本检查才是核心判定信号。** - 它是一种可达性与版本启发式检查,而不是一个 PoC(概念验证)。 ## 漏洞说明 (wp2shell) 两个被链式利用的 WordPress Core 漏洞,已通过 **2026-07-17** 的紧急发布版本予以披露: | CVE | 类型 | 受影响版本 | | -------------- | -------------------------------------------- | ---------------------------------------------- | | CVE-2026-63030 | REST API 批量路由混淆 (RCE 漏洞促成因素) | 6.9.0–6.9.4, 7.0.0–7.0.1 | | CVE-2026-60137 | `WP_Query` `author__not_in` SQL 注入 | 6.8.0 及更高版本 (6.8.0–6.8.5 = 仅限 SQLi 的版本区间) | 被链式利用时,它们能让**未经认证的**攻击者达到 SQL 注入条件,并在默认安装的环境下升级为**远程代码执行 (RCE)**——无需插件,无需登录。RCE 这部分仅在未使用持久性 object cache 时适用。 **修复版本:** 6.8.6 (仅限 SQLi)、6.9.5、7.0.2 (以及 7.1 Beta 2+)。WordPress 已为受影响的站点启用了强制自动更新——请验证更新是否真正落实。 由 Adam Kues (Assetnote / Searchlight Cyber) 通过 WordPress 的 HackerOne 项目报告。 ## 安装说明 要求 Python 3.9+ 以及 `requests`。 ``` # 使用 uv uv pip install requests # 或普通的 pip pip install requests ``` ## 用法 ``` python wp2shell.py https://target.example ``` 输出示例: ``` https://target.example: VULNERABLE (RCE) [6.9.3] ``` ## 结果解读 | 判定结论 | 含义 | | ------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | `VULNERABLE (RCE)` / `VULNERABLE (SQLi)` | 处于受影响版本**且** REST 批量路由可达 → 在默认安装下存在暴露风险。请参阅 _局限性_。 | | `version-affected (...), route unconfirmed` | 版本处于受影响的区间内,但 REST 批量路由未按预期响应。 | | `not affected` | 检测到 WordPress,但版本位于受影响区间之外。 | | `wordpress not detected` | 未找到版本信息(REST 被锁定、`generator` 标签被移除,或非 WordPress)。 | | `unreachable` | 主机未响应。 | ## 局限性 - **"VULNERABLE" 是暴露信号,而非确认。** 其含义为 _受影响版本 + REST 可达_。 它无法证明路由混淆/注入在该特定主机上可被利用。 - **持久性 object cache。** RCE 要求未使用持久性 object cache。一个站点可能处于受影响区间,但无法被利用实现 RCE - 并且本工具无法通过远程检测到这一点。 - **版本检测已尽最大努力。** `generator` 标签通常会被移除或伪造;缺失版本信息会导致显示 `wordpress not detected`,这并不能保证该站点是安全的或非 WordPress 站点。 - **每次运行仅支持单个 URL。** 除了控制台单行输出外,不支持批量输入、速率限制或其他输出格式。 ## 修复建议 1. 将您的分支更新至 **6.8.6**、**6.9.5** 或 **7.0.2**(或更新版本),并确认更新已应用。 2. 如果无法立即修补,请在您的 WAF 处拦截 `/wp-json/batch/v1` 和 `?rest_route=/batch/v1`, 或限制对 REST API 的匿名访问。 ## 免责声明 按“原样”提供,仅用于授权的安全测试和教育目的。您需对 您的使用方式自行承担全部责任。 ## 参考链接 - WordPress 安全发布, 6.9.5 / 7.0.2 (2026-07-17) - Cloudflare — WordPress 漏洞的 WAF 防护 - The Hacker News — wp2shell 相关报道 - ZeroSec (zsec.uk) — wp2shell 代码追踪深度剖析
标签:Python, WordPress, 实时处理, 插件系统, 无后门, 资产盘点, 逆向工具