CVE-2025-10045CVE-2025-10045是WordPress插件onOffice for WP-Websites中存在的一个SQL注入漏洞。该插件是一款用于在WordPress网站上集成onOffice房地产管理系统的工具,广泛应用于房地产中介和房产展示网站。该漏洞存在于插件的RecordManagerReadListViewEstate.php文件中,具体位于'order'参数的处理逻辑中。
根据Wordfence安全团队披露的信息,该漏洞影响插件的所有版本,最高至6.5.1版本(含)。由于插件在处理用户通过'order'参数提交的排序请求时,未对用户输入进行充分的转义处理,也未对现有SQL查询进行充分的预处理(如使用参数化查询或预编译语句),导致攻击者可以在原始SQL查询中追加额外的SQL语句。
该漏洞的CVSS 3.1评分为4.9分,属于中危级别。其利用条件要求攻击者必须拥有Editor级别及以上权限,因此攻击门槛相对较高。但一旦成功利用,攻击者可以通过注入的SQL查询从数据库中提取敏感信息,如用户凭据、个人信息、房产数据等。该漏洞不会影响数据的完整性和系统可用性,但其对机密性的威胁不容忽视。
该SQL注入漏洞的根本原因在于插件在处理列表视图(ListView)中房产记录(Estate)的排序功能时,对'order'参数的处理不当。具体技术细节如下:
1. **漏洞位置**:插件文件 RecordManagerReadListViewEstate.php 中的列表视图读取管理器(RecordManagerReadListViewEstate)。当用户请求对房产列表进行排序时,该参数被直接拼接到SQL查询的ORDER BY子句中。
2. **注入原理**:由于'order'参数未经过适当的转义(如使用mysqli_real_escape_string)或预处理(如使用PDO的预编译语句),攻击者可以构造特殊的SQL片段,例如通过注入UNION SELECT语句或布尔盲注表达式来读取数据库中的任意数据。例如,攻击者可以提交类似 `ORDER BY (SELECT CASE WHEN (条件) THEN 1 ELSE 1/(SELECT 0) END)` 的payload进行盲注。
3. **利用条件**:攻击者需要拥有Editor级别或更高权限的WordPress账户(如管理员、编辑等),这意味着普通订阅者或访客无法直接利用此漏洞。但拥有Editor权限的用户通常可以管理网站内容,具备一定的信任级别。
4. **攻击影响**:成功利用后,攻击者可以通过注入的SQL查询提取数据库中的敏感信息,包括但不限于:WordPress用户表(wp_users)中的用户名和密码哈希、插件配置信息、客户数据等。由于漏洞仅影响机密性(C:H),不会导致数据篡改或服务中断。
5. **修复方式**:插件开发者已在更新版本中对'order'参数进行了适当的转义和预处理,使用参数化查询或白名单验证来防止SQL注入。