arvindear/wp2shell-PoC
# 学习卡:wp2shell-PoC
一、一句话定位
一个针对 WordPress 核心的预认证 RCE 漏洞链 PoC,组合 CVE‑2026‑63030(REST API 路由混淆)和 CVE‑2026‑60137(WP_Query SQL 注入),从零权限直达远程命令执行。
二、核心技术/架构亮点
- 路由混淆:`/batch/v1` 中 `$matches` 与 `$validation` 数组因 `continue` 语句不同步,后续请求被错误分发,绕过权限与 Schema 校验。
- 嵌套批处理注入:外层批量绕过方法白名单(允许 GET),内层通过 `author_exclude` 标量字符串触发 WP_Query 直接拼 SQL,实现 UNION 盲注。
- 缓存投毒 & 伪造对象:SQLi 返回伪造的 `WP_Post`(含 `[embed]` 短代码),WordPress 自动生成 `oembed_cache` 行,植入持久化数据。
- 变更集提权:通过 SQLi 伪造 `customize_changeset`(JSON 中设 `user_id:1`),利用循环检测 gadget 触发 `wp_update_post()`,应用后临时获得管理员身份。
- 钩子重入:创建 `status=parse, type=request` 的伪造文章,自动触发 `parse_request` 钩子,以管理员身份重新执行完整请求,创建新管理员账户。
三、适用场景与目标用户
- 安全研究员:研究 WordPress 核心漏洞链、REST API 安全、缓存与权限提权技巧。
- 渗透测试/红队:在授权环境下检测或利用未修补的 WordPress 实例(版本 6.9.0‑6.9.4 / 7.0.0‑7.0.1)。
- WP 管理员:验证自身站点是否受影响,或作为内部安全演练工具。
四、可动手动作
1. Clone 并运行:`git clone https://github.com/arvindear/wp2shell-PoC`,进入目录,确保 Python ≥ 3.8。
2. 漏洞检测:执行 `python wp2shell.py http://target.com`(默认 check 模式),使用 `--confirm-sqli` 确认 SQL 注入存在。
3. 数据提取:`--read --preset users` 获取用户哈希,`--read --query "SELECT @@version"` 自定义查询。
4. 远程命令执行:无凭据时 `--shell --cmd id` 走完整链;有管理员凭据时 `--shell --user admin --password <pwd> --cmd id`。
5. 安全提醒:仅限自己控制的环境或获得授权的靶场使用,严禁未授权扫描。
五、学习优先级:P1(排期)
理由:该链展示了高价值预认证 RCE 的完整构造(路由混淆 + SQL 注入 + 缓存投毒 + 钩子重入),虽然 PoC 已有,但掌握其数组不同步、嵌套批量绕过、wpad 提权等技巧对理解现代 Web 漏洞链有极大帮助,建议 1‑2 周内动手复现并分析源码。⌂