安全排查 | 分析某通T+产品多个接口存在任意文件上传风险
2022-9-6 09:3:21 Author: dotNet安全矩阵(查看原文) 阅读量:20 收藏

2022年08月28日,各大安全公司监测到很多主机被.locked后缀的勒索病毒加密,通过加密文件特征分析,确认此次勒索病毒为 TellYouThePass 变种。

行业监管机构也第一时间通知各家单位高度重视,提醒警惕加强防范,全面排查相关系统资产,及时备份主机重要文件做好安全防护,严防勒索病毒攻击。

经过本地搭建复现环境评估发现某通T+产品存在多个接口文件上传0day漏洞,好在软件系统运行在预编译模式下,所以这几个上传漏洞未造成实际安全风险

2.1 上传一 SYSImportData.aspx

由于系统采用了预编译模式,上传的aspx文件不能运行,所以漏洞虽然存在,但基本无实际危害,漏洞位于 /SM/DTS/SYSImportData.aspx,核心代码如下

protected void ButtOk_Click(object sender, EventArgs e)    {        UpLoadCollection upLoadInbfo = this.GetUpLoadInbfo();        List<bool> list2 = new List<bool>();        if (upLoadInbfo != null)        {            foreach (object obj in upLoadInbfo)            {                UpLoadInfo upLoadInfo = (UpLoadInfo)obj;                string text = upLoadInfo.FUpload.FileName;                string voucherName = upLoadInfo.VoucherName;                string text2 = string.Concat(new object[]                {                    this.path,                    "\\",                    DateTime.Now.Ticks,                    "_",                    text                });                upLoadInfo.FUpload.SaveAs(text2);

upLoadInfo.FUpload.FileName获取文件名并未作任何扩展名过滤,但是用DateTime.Now.Ticks获取当前时间戳,所以文件名存在重命名的情况,导致文件名无法使用../../跳转到其他目录,所以漏洞在预编译模式下也不能被恶意利用。

2.2 上传二 InvDataImport.aspx

由于系统采用了预编译模式,上传的aspx文件不能运行,所以漏洞虽然存在,但基本无实际危害,漏洞位/ST/Common/InvDataImport.aspx,核心代码如下

protected void btnImport_Click(object sender, EventArgs e)    {        try        {            string fileName = this.UpLoadControl1.FileName;            string text = base.Server.MapPath("~/UserFiles/" + DateTime.Now.Ticks.ToString() + "_" + fileName).ToLower();            this.UpLoadControl1.SaveAs(text);            text = this.TextBox1.Text + '\u0011' + text;              }        catch (Exception e2)        {            this.HandleException(e2);        }    }

this.UpLoadControl1.FileName用户控件获取文件名并作任何扩展名过滤,但是用DateTime.Now.Ticks获取当前时间戳,所以文件名存在重命名的情况,导致文件名法使用../../跳转其他目录,所以漏洞在预编译模式下也不能被恶意利用

此软件上传风险还有不少,但只有被勒索病毒利用的文件存在跨目录可控的漏洞,其他的任意文件上传在预编译下只能算是SDL下需要消灭的安全风险,提前透露下篇文章从技术分析角度笔者将介绍动态关闭.NET预编译模式,请感兴趣的师傅们继续关注

为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展。

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库及0day等等,后续还会倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

我们的运营团队将一如既往地继续为大家做好服务,如果感兴趣的话欢迎参加下方的优惠劵活动加入我们,机不可失噢原价¥129当前只需¥99, 以后星球价格只会越来越高,对.NET安全关注的师傅们动动手加入我们吧!

dotNet安全矩阵知识星球 — 聚焦于微软.NET安全技术,关注基于.NET衍生出的各种红蓝攻防对抗技术、分享内容不限于 .NET代码审计、 最新的.NET漏洞分析、反序列化漏洞研究、有趣的.NET安全Trick、.NET开源软件分享、. NET生态等热点话题、还可以获得阿里、蚂蚁、字节等大厂内推的机会


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247486235&idx=1&sn=2d57a26505d232308d2ba21506ed23cd&chksm=fa5aa5f6cd2d2ce074f6cf091bfc44d31efd5032240265d37dc440f6dcc406d189c32b32ca7f#rd
如有侵权请联系:admin#unsafe.sh