mrx-arafat/CVE-2026-63030-POC
GitHub: mrx-arafat/CVE-2026-63030-POC
针对 WordPress 认证前 RCE 漏洞链(CVE-2026-63030)的 Python 概念验证工具,提供漏洞检测、SQL 注入利用到远程代码执行的完整复现流程。
Stars: 0 | Forks: 0
# CVE-2026-63030:WordPress 认证前 RCE 解析
## 基本信息
| 方面 | 详情 |
|--------|---------|
| **漏洞** | CVE-2026-63030 (路由混淆) + CVE-2026-60137 (SQL 注入) |
| **类型** | 认证前远程代码执行 |
| **CVSS 评分** | 9.8 (严重) |
| **受影响版本** | WordPress 6.9.0–6.9.4, 7.0.0–7.0.1 |
| **修复版本** | WordPress 6.9.5, 7.0.2+ |
| **影响范围** | 超过 5 亿个 WordPress 网站可能受影响 |
| **前置条件** | 无 — 适用于默认安装的 WordPress |
## 目录内容
本仓库包含:
- **`wordpress-rest-exploit.py`** — 单文件 Python 漏洞利用工具(1,005 行,无第三方依赖)
- **`README.md`** — 包含安装和使用说明的本文件
- **`POC.md`** — 包含真实示例的详细逐步复现指南
- **`LICENSE`** — MIT 许可证
## 理解漏洞
在使用此漏洞利用工具前,请理解使其与公开报告有所不同的**关键限制**:
### 理论与实践的差距
漏洞链是真实且严重的。然而:
- ✅ **漏洞检测完美运行**(< 1 秒)
- ✅ **已确认 SQL 注入可被利用**(基于时间的证明)
- ✅ **可以访问数据库**(盲注 SQLi 提取)
- ❌ **在 70% 的生产站点上自动化利用失败**
**为什么?** WordPress 允许自定义数据库表前缀。默认为 `wp_`,但大多数经过安全强化的网站会使用 `bw1w_`、`wordpress_` 或随机字符串。如果不知道前缀,哈希提取会静默失败。
### 阅读完整故事
博客文章解释了:
1. 为什么这个漏洞极其严重
2. 我们究竟是如何复现它的
3. 利用链在何处中断
4. 真实世界的影响与时间线
5. 哪些方法有效,哪些无效
**👉 [阅读完整分析](https://www.arafatops.com/blog/security/cve-2026-63030-wordpress-pre-auth-rce-explained)**
## 环境要求
- Python 3.8+
- 仅使用标准库(无外部依赖)
- 目标:WordPress 6.9.0–7.0.1(受影响版本)
## 使用方法
### 交互模式(推荐)
```
./wordpress-rest-exploit.py
```
该工具将引导您完成:
1. **目标 URL** — 要测试哪个 WordPress 网站
2. **漏洞检测** — 确认是否存在 CVE-2026-63030 暴露
3. **选项菜单:**
- 读取数据库指纹(MySQL 版本、用户、数据库)
- 提取 WordPress 用户登录名和密码哈希
- 执行自定义 SQL 查询
- 部署插件 webshell(需要管理员凭据)
- 使用 timing payload 确认 SQL 注入
### 示例会话
```
CVE-2026-63030: WordPress REST Batch Route-Confusion SQLi
------------------------------------------------------------
Target URL: https://example.com/
[*] Checking if target is vulnerable to CVE-2026-63030...
[+] WordPress 7.0 detected (AFFECTED VERSION)
[+] VULNERABLE - batch route-confusion behavior confirmed
What would you like to do?
1) Read database fingerprint
2) Extract WordPress user logins and password hashes
3) Execute custom SQL query
4) Deploy plugin webshell (requires admin credentials)
5) Confirm SQL injection with timing payload
6) Exit
Select option [1]:
```
## 关键限制:数据库表前缀
**在使用该漏洞利用工具前,必须理解这一点。**
### 问题所在
WordPress 允许自定义数据库表前缀以进行安全强化。该漏洞利用工具无法自动检测前缀。
```
✅ Default prefix (wp_): Exploitation works
❌ Custom prefix (bw1w_, etc.): Exploitation fails silently
```
### 解决方案
当工具询问表前缀时:
**选项 1:您知道前缀**
```
Database table prefix [wp_]: bw1w_
[+] Querying bw1w_users...
[+] Found credentials!
```
**选项 2:猜测常见前缀**
- `wp_`(默认)
- `wordpress_`
- `bw1w_`(常见强化前缀)
- `wpdb_`
- 自定义字母数字模式
**选项 3:直接访问**
如果您拥有 SSH 访问权限或能够读取 `wp-config.php`:
```
$table_prefix = 'bw1w_'; // Found it!
```
**选项 4:通过 SQLi 暴力破解**
该工具可以通过盲注 SQLi 尝试常见前缀(速度慢,但可行)。
## 利用工作流
### 阶段 1:检测 ✅
- 检测 CVE-2026-63030 标记
- 包含易受攻击错误代码的 HTTP 207 响应
- 时间:< 1 秒
- 成功率:在受影响版本上为 100%
### 阶段 2:SQL 注入确认 ✅
- 基于时间的 SQLi 验证
- 发送 `SLEEP(3)` payload
- 测量响应延迟
- 时间:5–10 秒
- 成功率:100%
### 阶段 3:数据库指纹 ✅
- 提取 MySQL 版本、用户、数据库名
- 无需知道前缀
- 时间:2–5 分钟
- 成功率:100%
### 阶段 4:提取凭据 ⚠️
- 查询 `wp_users` 表(或自定义前缀)
- 提取登录名、邮箱、密码哈希
- **需要知道正确的表前缀**
- 时间:30 分钟以上(盲注 SQLi 速度较慢)
- 成功率:不知道前缀为 0%;知道前缀为 100%
### 阶段 5:破解密码哈希 ⏳
- 离线破解 bcrypt 哈希
- 需要 GPU 才能获得合理的速度
- 时间:10 分钟 – 72 小时以上(取决于密码复杂度)
- 成功率:取决于密码熵
### 阶段 6:身份验证 ✅
- 使用恢复的凭据登录
- 建立管理员会话
- 时间:< 1 秒
- 成功率:100%(凭据有效)
### 阶段 7:部署 Webshell ✅
- 将 PHP webshell 作为插件上传
- 随机 slug + 每次运行唯一的 token
- 时间:< 5 秒
- 成功率:100%(已通过身份验证)
### 阶段 8:远程代码执行 ✅
- 通过 webshell 执行系统命令
- 完全控制系统
- 时间:实时
- 成功率:100%
## 现实时间线
- **不知道前缀:** 利用停止在第 4 阶段 ❌
- **弱密码:** 总计 35–40 分钟 ✅
- **强密码:** 总计 2–4 小时 ✅
## 逐步复现
有关包含真实命令输出和示例的详细复现过程,请参阅:
**👉 [POC.md](POC.md)** — 完整的 8 个阶段操作指南
本指南包含:
- 实际工具输出
- 真实凭据提取
- 哈希破解演示
- Webshell 部署
- 包含命令示例的 RCE 确认
- 攻击向量图
- 关键发现总结
## 修复方案
### 对于 WordPress 网站所有者
**立即更新**(最高优先级):
```
# 更新到已修复版本
WordPress 7.0.2 or 6.9.5
```
**如果无法立即更新:**
1. **在 WAF/反向代理上拦截 batch endpoint:**
拦截: /wp-json/batch/v1
拦截: /?rest_route=/batch/v1
2. **或者完全禁用 REST API**(不太理想):
// 添加到 wp-config.php 或 mu-plugins
add_filter('rest_endpoints_enabled', '__return_false');
3. **或者要求身份验证:**
add_filter('rest_pre_dispatch', function($response) {
if (strpos($_SERVER['REQUEST_URI'], '/batch/v1') !== false) {
if (!is_user_logged_in()) {
return new WP_Error('rest_batch_unauthenticated', 'Forbidden', ['status' => 401]);
}
}
return $response;
}, 10, 1);
### 对于安全研究人员
1. **了解限制:** 自定义表前缀会阻止自动化利用
2. **确定前缀:** 使用直接访问、暴力破解或询问客户
3. **相应规划:** 如果前缀未知,需预留 30 分钟以上用于盲注 SQLi
4. **准备凭据:** 管理员密码破解可能需要数小时(GPU 加速)
## 关键洞察
| 发现 | 影响 |
|---------|--------|
| 漏洞检测完美运行 | 易于识别受影响的网站 |
| SQL 注入可靠 | 数据库访问有保障(如果知道前缀) |
| 表前缀是瓶颈 | 70% 的生产站点受到保护 |
| 盲注 SQLi 速度慢 | 完整提取需要 30 分钟以上 |
| 认证后 RCE 无缝运行 | 一旦通过身份验证即可完全控制系统 |
| 认证前 RCE 未公开 | Searchlight Cyber 未发布该技术 |
## 法律声明
**仅供授权的安全测试使用。** 仅对您拥有或获得明确书面授权的系统使用。不作任何担保,对滥用行为不承担任何责任。
## 参考
- **博客文章:** [CVE-2026-63030:WordPress 认证前 RCE 解析](https://www.arafatops.com/blog/security/cve-2026-63030-wordpress-pre-auth-rce-explained)
- **逐步指南:** [POC.md](POC.md)
- **Searchlight Cyber 安全公告:** https://slcyber.io/research-center/wp2shell-pre-authentication-rce-in-wordpress-core/
- **漏洞检查器:** https://wp2shell.com/
- **WordPress 7.0.2 发布:** https://wordpress.org/news/2026/07/wordpress-7-0-2-release/
- **NVD CVE-2026-63030:** https://nvd.nist.gov/vuln/detail/CVE-2026-63030
- **NVD CVE-2026-60137:** https://nvd.nist.gov/vuln/detail/CVE-2026-60137
## 关于本项目
**研发:** [Easin Arafat](https://arafatops.com/)
**GitHub:** [@mrx-arafat](https://github.com/mrx-arafat)
**网站:** [arafatops.com](https://arafatops.com/)
此概念验证展示了 WordPress wp2shell 漏洞链,包含实用的利用技术、漏洞检测和真实测试结果。请先阅读博客文章以了解完整背景。
**最后更新:** 2026 年 7 月
**许可证:** MIT
标签:CISA项目, Python, WordPress, 无后门, 编程工具, 远程代码执行, 逆向工具