Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WP2Shell-CVE-2026-63030-POC — PoC检测器与安全验证器,针对WP2Shell WordPress漏洞链:CVE-2026-63030(REST批处理路由混淆)+ CVE-2026-60137(author__not_in SQL注入)。仅限授权的安全测试使用。 | Kitploit
工具/GitHubGitHub/bhanunamikaze/wp2shell-cve-2026-63030-poc
侦察漏洞扫描器漏洞利用Web应用程序漏洞利用信息收集Web安全渗透测试学习与教育

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
bhanunamikaze/wp2shell-cve-2026-63030-poc

WP2Shell-CVE-2026-63030-POC

PoC检测器与安全验证器,针对WP2Shell WordPress漏洞链:CVE-2026-63030(REST批处理路由混淆)+ CVE-2026-60137(author__not_in SQL注入)。仅限授权的安全测试使用。

查看仓库网站
112个月前尚未审核

WP2Shell 检测与验证 PoC

License: MIT Python 3.9+ CVE-2026-63030 CVE-2026-60137 Security Research

CVE 覆盖范围: CVE-2026-63030 和 CVE-2026-60137 预期用途: 仅限授权的安全测试、防御性验证和一次性本地主机实验室

WP2Shell 是一个 WordPress 核心漏洞链,结合了预认证 REST API 批处理路由混淆漏洞(CVE-2026-63030)和一个 WP_Query author__not_in SQL 注入原语(CVE-2026-60137)。该仓库提供了一个 Python 概念验证扫描器和安全验证器,使防御者能够指纹识别受影响的 WordPress 安装,在隔离实验室中确认易受攻击的行为,并验证修复措施——无需提取数据或实现代码执行。

概述

该项目对 WordPress 安装进行指纹识别,并验证与 WP2Shell WordPress 核心漏洞链相关的两个漏洞原语:

  • CVE-2026-63030 — REST API 批处理路由混淆。
  • CVE-2026-60137 — WP_Query::author__not_in 的不完全清理,当攻击者控制的输入到达该参数时可能导致 SQL 注入。

当两个条件同时存在时,未经身份验证的请求可能通过 WordPress REST API 批处理端点到达易受攻击的 SQL 构造。公共公告将组合影响描述为可能导致远程代码执行。

该仓库应仅用于您拥有或明确授权测试的系统。建议使用绑定到 127.0.0.1 的隔离 Docker 或虚拟机实验室。


安全通知

当前源文件包含状态更改功能,包括数据库数据提取尝试、文件写入尝试、身份验证工作流、管理员创建、插件上传和命令执行。

  • WordPress 指纹识别。
  • 版本评估。
  • 本地源代码树版本检查。
  • 安全路由混淆验证。
  • 在隔离实验室中进行非破坏性的基于时间的 SQL 注入确认。
  • 报告、证据收集和修复。

漏洞概述

CVE-2026-63030 — REST API 批处理路由混淆

受影响的 WordPress 版本会丢失用于跟踪的内部数组之间的对齐:

  • 解析的批处理请求。
  • 匹配的 REST 路由处理器。
  • 验证结果。

当一个格式错误的批处理成员被接受到一个内部数组但未被接受到另一个内部数组时,后续请求可能与错误的处理器关联。因此,一个请求可能被验证为一条路由,但使用另一条路由的回调执行。

安全影响:

  • REST 请求/处理器不同步。
  • 针对错误路由模式的验证。
  • 意外的嵌套批处理执行。
  • 预认证可达性,原本受限制的代码路径。
  • 当与 CVE-2026-60137 结合时,潜在的 SQL 注入和进一步的危害。

CVE-2026-60137 — author__not_in SQL 注入

受影响的 WP_Query 实现在使用 author__not_in 构造 SQL NOT IN (...) 条件之前,未一致地对其进行规范化。

该参数通常期望一个整数作者 ID 列表。如果标量字符串在未经过预期的 REST 模式验证的情况下到达易受攻击的查询构造,则不安全的 SQL 结构可能存活到数据库查询中。

安全影响:

  • 盲 SQL 注入。
  • 基于布尔或时间的数据库预言。
  • 可能泄露 WordPress 数据库内容。
  • 与 CVE-2026-63030 链式组合时影响增加。

受影响版本

WordPress 分支受影响修复版本
6.8.x仅 CVE-2026-60137:6.8.0–6.8.56.8.6
6.9.x两个问题:6.9.0–6.9.46.9.5
7.0.x两个问题:7.0.0–7.0.17.0.2
7.1 预发布Beta 1 受影响Beta 2
早于 6.8不受这两个 CVE 影响N/A

WordPress 于 2026 年 7 月 17 日发布修复,并因严重性为受影响安装启用了强制自动更新。


漏洞工作流```text

Unauthenticated client | v WordPress REST batch endpoint | v Malformed batch member creates request/handler misalignment | v Later request is validated against one route but dispatched using another route's handler | v Scalar author_exclude reaches WP_Query as author__not_in | v Unsafe value reaches SQL NOT IN (...) construction | v Blind SQL timing or Boolean oracle | v Potential database compromise | v Potential application-level compromise and RCE

检测器应在确认路由混淆和 SQL 注入原语后停止。它不需要提取数据或执行命令来确定受影响的安装是脆弱的。

---

## 检测工作流程

### 阶段 1 — 标准化目标

该工具:

1. 如果缺少,则添加默认的 `http` 或 `https` 协议方案。
2. 标准化 WordPress 安装路径。
3. 拒绝不支持的 URL 方案和嵌入的凭证。
4. 应用重定向、代理、TLS 和超时策略。

### 阶段 2 — 识别 WordPress

扫描器检查以下内容:

- `wp-content/` 引用。
- `wp-includes/` 引用。
- WordPress 生成器元数据。
- REST API 发现链接。
- WordPress REST 索引结构。
- `wp/v2` 命名空间。
- 可选的 feed 和 `readme.html` 指纹。

### 阶段 3 — 确定版本

版本证据可能来自:

- HTML 生成器元数据。
- Feed 生成器元数据。
- WordPress 核心资源查询字符串。
- HTTP 生成器标头。
- `readme.html`。
- 本地的 `wp-includes/version.php` 文件。

证据被评分并协调。冲突的远程版本指示符会降低置信度。

### 阶段 4 — 检查批量路由暴露

扫描器尝试通过以下方式发现 `/batch/v1`:```text
/?rest_route=/
/wp-json/

该路由可以通过以下任一方式访问:```text /?rest_route=/batch/v1 /wp-json/batch/v1

### 阶段5 — 安全路由混淆探测

安全探测包含:

1. 一个故意格式错误的内部路径。
2. 一个对无效帖子ID的请求,带有一个无害的嵌套公共`GET`。
3. 一个后续的`/batch/v1`请求。

易受攻击的服务器返回一个外层的`207 Multi-Status`响应,其中无效的帖子请求被处理为嵌套批量请求。

检测器报告:```text
route-confusion-observed

当检测到:

  • 预期的 parse_path_failed 标记。
  • 第二个外层响应,状态码为 207。
  • 嵌套的 responses 数组显示出无害的内部请求已执行。

阶段6 — 基于时间的SQL注入确认

非破坏性的SQL注入验证器应发送成对请求,这些请求仅在一个常量布尔条件上有所差异:```text False control -> no deliberate database delay True test -> deliberate database delay

验证器必须:

- 接受预期的外层 HTTP `207`。
- 解析外层和嵌套的批量信封。
- 验证格式错误的请求标记。
- 确保携带 SQLi 的嵌套请求返回了有效响应。
- 收集多个真样本和假样本。
- 随机化或交错样本顺序。
- 比较中位数而非单个请求。
- 将测量不足的情况报告为 `inconclusive`。

真假样本之间可重复出现的差距,确认攻击者控制的输入到达了 SQL 评估。无需选择或提取任何数据库内容。

---

## 要求

- Python 3.9 或更高版本。
- 所提供的脚本不需要第三方 Python 包。
- 能够访问授权的 WordPress 安装的网络权限。
- 对于本地测试:
  - 一个可丢弃的 WordPress 7.0.1 或 6.9.4 实验环境。
  - 一个数据库容器或专用的测试数据库。
  - 绑定到 `127.0.0.1` 的 web 服务。
  - 没有生产环境的凭据或数据。

检查 Python:```bash
python3 --version

可选语法验证:```bash python3 -m py_compile WP2Shell_CVE-2026-63030_POC.py

---

## 安装

将提供的脚本重命名为一个可预测的文件名:```bash
mv 'poc(1).py' WP2Shell_CVE-2026-63030_POC.py
chmod +x WP2Shell_CVE-2026-63030_POC.py

显示全局帮助:```bash python3 WP2Shell_CVE-2026-63030_POC.py --help

显示版本:```bash
python3 WP2Shell_CVE-2026-63030_POC.py --version

命令

该脚本定义了三个命令:```text remote Fingerprint and scan HTTP(S) WordPress targets. local Read the installed WordPress version from a source tree. exploit State-changing proof-of-concept path.

### 当前构建状态

| 命令 | 状态 |
|---|---|
| `local` | 已实现 |
| `remote` | CLI 已定义,但 `run_remote()` 当前为存根并返回错误 |
| `exploit` | 包含状态变更功能;仅限于可丢弃的本地实验室,并与防御性扫描分开 |

源代码目前针对 `remote` 输出以下内容:```text
Remote scanning not fully implemented in this snippet. Use 'local' or 'exploit'.

在宣传批量远程扫描功能之前,先恢复完整的 run_remote() 实现。


本地版本评估

local 命令内容如下:```text /wp-includes/version.php

并提取 `$wp_version`。

## 基本用法```bash
python3 WP2Shell_CVE-2026-63030_POC.py local \
  --wordpress-root /var/www/html

JSON 报告```bash

python3 WP2Shell_CVE-2026-63030_POC.py local
--wordpress-root /var/www/html
--format json
--output local-result.json

## 基于 Docker 的 WordPress 安装

当 WordPress 容器名为 `wordpress` 时,将源代码树复制或挂载到主机上,或在容器内运行版本检查:```bash
docker compose exec wordpress php -r \
  'require "/var/www/html/wp-includes/version.php"; echo $wp_version, PHP_EOL;'

使用 compose.yaml 搭建易受攻击的实验室环境

使用提供的 compose.yaml 运行一个绑定到 127.0.0.1:8080 的一次性本地实验室:```bash docker compose up -d

一旦在浏览器中完成WordPress的首次设置(地址为 `http://127.0.0.1:8080`),你可以运行:```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote \
  --authorized \
  --target http://127.0.0.1:8080 \
  --active-probe \
  --format json

停止并移除实验室:```bash docker compose down -v

## 本地命令选项

| 选项 | 说明 |
|---|---|
| `--wordpress-root PATH` | 包含 `wp-includes/version.php` 的必需目录 |
| `-f, --format` | `table`、`json`、`jsonl` 或 `csv` |
| `-o, --output FILE` | 将报告写入文件 |
| `--fail-on` | 退出策略:`never`、`vulnerable` 或 `unknown` |

## 示例:漏洞版本输出```json
[
  {
    "selected_version": "7.0.1",
    "version_assessment": "affected-wp2shell",
    "verdict": "CONFIRMED_AFFECTED_VERSION",
    "severity": "critical"
  }
]

本地版本结果确认已安装的版本在已公布的受影响范围内。但它本身并不证明运行时可利用性或向后移植补丁的效果。


远程扫描器接口

remote 解析器支持以下参数,但提供的 run_remote() 实现目前不完整。

单目标

恢复 run_remote() 后的预期接口:```bash python3 WP2Shell_CVE-2026-63030_POC.py remote
--authorized
--target https://wordpress.example
--active-probe

## 多个显式目标```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote \
  --authorized \
  --target https://site-one.example \
  --target https://site-two.example \
  --active-probe

目标文件

下载工具