# 用友NC checkekey参数SQL注入漏洞分析
[](https://blog.xn--ubt767m.wang/content/uploadfile/text2image/67e98f0fc979a.png "用友NC系统checkekey参数高危SQL注入漏洞分析与防护措施")
## 漏洞概述
用友NC作为国内广泛使用的企业级ERP系统,其`checkekey`参数被发现存在SQL注入漏洞。该漏洞允许攻击者通过构造恶意请求绕过系统防护,直接操作数据库并获取敏感信息,可能造成企业核心业务数据泄露。
## 技术原理
### 漏洞触发点
在系统身份验证模块中,`checkekey`参数未对用户输入进行有效过滤:
```http
POST /xxx_portal/login.jsp HTTP/1.1
checkekey=1' AND (SELECT 1 FROM (SELECT SLEEP(5))a)--
攻击向量
攻击者可通过以下方式实施注入:
- 时间盲注:利用
SLEEP()
函数探测数据库结构 - 联合查询:通过错误回显获取数据库版本信息
- 带外通信:使用DNS解析记录外传数据
影响范围
受影响版本包括:
- 用友NC 6.5及更早版本
- 未安装2023年Q2安全补丁的系统
- 采用默认配置的NC云部署实例
漏洞验证
通过构造延时注入Payload可检测漏洞存在:
'||(SELECT 0x4e43 FROM DUAL WHERE 8899=8899 AND 1947=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(300000000/2)))))||'
修复建议
临时处置措施
// 增加参数过滤逻辑
String safeKey = request.getParameter("checkekey")
.replaceAll("([';]+|--|/*|\\*)", "");
官方解决方案
- 升级至NC 6.5 SP3版本
- 部署官方紧急补丁包NC_202307_SEC_001
- 启用WAF的SQL注入防护规则
防护建议
- 实施最小权限原则,限制数据库账户权限
- 启用预编译语句处理SQL查询
- 建立输入白名单验证机制
- 定期进行渗透测试与代码审计
注:本文仅用于安全研究,相关漏洞细节已提交CNVD备案(编号:CNVD-2023-xxxxx)。建议受影响企业及时关注用友官方安全公告。
评论一下吧
取消回复