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


    1.前言

    8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足。第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如果网站前端存在waf等安全设备,应该是可以被正常拦截的,所以也无需过于担心。
    在这里插入图片描述

    在这里插入图片描述

    2.漏洞复现

    2.1 漏洞信息:

    • 适用版本:<=v17.0
    • 漏洞类型:任意文件上传
    • 漏洞危害:可实现RCE获取主机权限
    • 涉及接口:/tplus/SM/SetupAccount/Upload.aspx?preload=1

    2.2 漏洞分析

    这是一个上传漏洞,所以我们需要构造一个post的上传请求,请求接口即为/tplus/SM/SetupAccount/Upload.aspx?preload=1,不难看出,这是一个上传用户个人头像的接口。
    通过源码分析可知:
    在这里插入图片描述
    上传过程中只检测了Content-Type这一个参数,攻击者可以随意构造filename的参数从而 上传任意文件,这就导致了漏洞的产生。
    在这里插入图片描述
    不难看出上传路径为当前目录下的images目录,即为/tplus/SM/SetupAccount/images/目录。
    到这里漏洞的产生原因就很清楚了,算是一个比较常见的上传漏洞,接下来就是常规的文件上传了。

    2.3 漏洞利用

    我们可以构造如下参数的上传包(出于和谐考虑就不贴完整的上传包了):

    Content-Type: multipart/form-data; boundary=---------------------------33007515338361897914262830846
    
    -----------------------------33007515338361897914262830846
    Content-Disposition: form-data; name="File1"; filename="test.html"
    Content-Type: image/jpeg
    
    test
    -----------------------------33007515338361897914262830846--
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    上传之后,如果对方在漏洞利用范围就会成功返回200
    在这里插入图片描述此时我们访问一下/tplus/SM/SetupAccount/images/1.html即可访问对应文件,至此这个漏洞的基本复现就完成了。

    3.深度利用

    注:非授权测试是违法行为,请大家不要恶意攻击他人的业务系统!
    漏洞到复现程度在上文就已经实现了,但是实际测试中如果你想要进一步利用就会出现一些问题。
    在这里插入图片描述

    你会发现aspx的文件并不能正常解析,这是由于根目录下的PrecompiledApp.config 中的updatable值设置成了false。导致后面上传的文件无法进行编译。aspx程序无法正常执行。
    当然,遇到这种情况,部分环境是可以尝试asp文件进行getshell的。因为asp文件并非.Net处理。这个就只能看运气了绝大多数环境可能并不支持执行asp文件。
    但是这种情况并非无法解决问题,我们可以通过手动编译的方式上传编译后的dll文件来提供aspx文件的运行环境。具体操作在这里就不具体分析了,等风头过了之后再考虑补全一下操作方案。
    有想复现的白帽子可以参考
    https://www.buaq.net/go-53733.html

    4.修复方案

    • 官方补丁, https://www.chanjetvip.com/product/goods/goods-detail?id=53aaa40295d458e44f5d3ce5
    • WAF拦截,由于这是一个常规的上传漏洞,很多waf都是有默认的拦截能力的,需要的话也可以将/tplus/SM/SetupAccount/Upload.aspx路径进行主动拦截。
  • 相关阅读:
    优雅使用前端枚举Enum,符合国标的那种!
    多模态融合相关概念
    基于html的美食网站 奶茶网页设计与实现(HTML+CSS+JavaScript)
    2023-9-10 能被整除的数
    动环监控安装及调试过程,动环监控调试是什么
    .net 温故知新【15】:Asp.Net Core WebAPI 配置
    MySql(随记)
    docker搭建redis哨兵集群和分片集群
    android——自定义加载按钮LoadingButton
    vue-i18n国际化语言在项目中的使用
  • 原文地址:https://blog.csdn.net/xiayu729100940/article/details/126646035