CVE-2025-60267CVE-2025-60267是xckk内容管理系统v9.6版本中存在的一个SQL注入漏洞。该漏洞位于notice/list接口的cond参数中,由于该参数未经过充分的安全过滤和参数化处理,攻击者可以通过构造恶意的SQL语句片段注入到数据库查询中,从而绕过正常的身份验证和数据访问控制机制。xckk是一款基于Java开发的内容管理系统,广泛应用于中小型网站的信息发布与管理。该漏洞的CVSS 3.1评分为6.5分,属于中危级别漏洞。虽然该漏洞不会直接导致系统完全不可用(可用性影响为无),但攻击者可以利用该漏洞读取数据库中的敏感信息(如管理员凭据、用户个人信息等),甚至在特定数据库配置下执行数据修改操作,对系统数据的机密性和完整性构成威胁。该漏洞无需任何身份认证即可利用,且不需要用户交互,攻击者可以通过远程网络直接发起攻击,攻击门槛较低。由于xckk作为内容管理系统通常存储大量业务数据和用户信息,一旦被利用,可能导致数据泄露、篡改等严重后果。该漏洞已在GitHub上的int-ux/report项目中报告(issue #3),相关代码托管在Gitee平台(bestfeng/xckk仓库)。
该SQL注入漏洞的根本原因在于xckk v9.6版本的notice/list接口在处理cond参数时,未采用预编译参数化查询(PreparedStatement)或充分的输入过滤机制,而是直接将用户输入拼接到SQL查询语句中。具体技术细节如下:
1. **漏洞入口点**:notice/list接口的cond参数。该参数原本用于传递通知列表的查询条件,但未对特殊字符(如单引号'、双引号"、注释符--、UNION、SELECT等)进行转义或过滤。
2. **注入原理**:当攻击者向cond参数传入类似 `' OR '1'='1` 或 `1' UNION SELECT username,password FROM users--` 的恶意字符串时,后端SQL语句将变为类似 `SELECT * FROM notices WHERE condition = '' OR '1'='1'` 的形式,导致WHERE条件恒为真或执行攻击者构造的UNION查询。
3. **利用方式**:
- **布尔盲注**:通过构造条件判断语句(如`' AND SUBSTRING(@@version,1,1)='5`),根据页面返回差异推断数据库信息。
- **UNION联合查询**:利用UNION SELECT提取数据库中的敏感数据,如管理员账号、密码哈希等。
- **时间盲注**:使用SLEEP()等函数进行基于时间的盲注,即使页面无明显回显也能获取数据。
4. **影响范围**:该漏洞影响xckk v9.6及可能存在的更早版本。由于cond参数在notice/list接口中直接暴露在HTTP请求中,攻击者无需任何权限即可远程利用。