非侵入式暴露检测器,用于 WordPress "wp2shell" 预认证 RCE 链 (CVE-2026-63030 + CVE-2026-60137)。
⚠️ 仅限授权使用。 仅在你拥有或获得明确许可的 WordPress 实例上运行。这是一个分类辅助工具,而非利用工具。未经许可扫描系统可能违法。
给定一个 URL,wp2shell-check:
generator 元标签读取 WordPress 版本(被动检测)。?rest_route=/batch/v1) 发送一个单一良性探测,以检查 REST 批处理路由是否可达。专为快速批量排查设计:我的哪些站点在受影响版本且 REST 可达?
两个串联的 WordPress 核心缺陷,于 2026 年 7 月 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 部分仅在 没有使用 持久化对象缓存时适用。
修复版本: 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。
# with uv
uv pip install requests
# or plain pip
pip install requests
python wp2shell.py https://target.example
示例输出:
https://target.example: VULNERABLE (RCE) [6.9.3]
generator 标签常被移除或伪造;缺少版本时返回 wordpress not detected,但不能保证站点安全或非 WordPress。/wp-json/batch/v1 和 ?rest_route=/batch/v1,或限制对 REST API 的匿名访问。按原样提供,仅用于授权的安全测试和教育目的。您对自己的使用方式承担全部责任。
| 判定结果 | 含义 |
|---|
VULNERABLE (RCE) / VULNERABLE (SQLi) | 受影响的版本 且 REST 批处理路由可达 → 在默认安装下暴露。参见_局限性_。 |
version-affected (...), route unconfirmed | 版本处于受影响范围,但 REST 批处理路由未按预期响应。 |
not affected | 检测到 WordPress,版本不在受影响范围。 |
wordpress not detected | 未找到版本(REST 被锁定,generator 标签被移除,或不是 WordPress)。 |
unreachable | 主机无响应。 |