OFCMS v1.1.3 SQL注入漏洞 漏洞概述 在OFCMS v1.1.3版本中,存在一个SQL注入漏洞。该漏洞位于 接口,该接口调用了 文件中的 方法。漏洞的根源在于后端SQL语句的 子句拼接时,未对传入的参数进行充分的验证和过滤,导致攻击者可以构造复杂的SQL表达式(包括嵌套子查询)进行注入。 影响范围 受影响系统: OFCMS v1.1.3 漏洞文件: 漏洞代码位置: 第37行, 方法调用处。 修复方案 建议: 对 参数进行严格的输入验证和过滤,确保其不包含恶意SQL代码。 代码示例: POC代码 java // 原始代码 getSqlPara("system.user.query", params); // 修复建议 // 1. 对params中的每个参数进行严格的类型检查和长度限制。 // 2. 使用预编译语句(PreparedStatement)来替代字符串拼接。 // 3. 对特殊字符(如单引号、双引号、分号等)进行转义处理。 java // 漏洞代码位置 Line 37, Db.getSqlPara("system.user.query", params); will call the SQL query statement in the query section of the file ofcms-admin/src/main/resources/conf/sql/system.sql. sql -- 漏洞SQL语句示例 SELECT * FROM sys_user AND username LIKE CONCAT('%', #{username}, '%') AND status = #{status} AND ${params} ```