某通T+ 漏洞分析
2022-9-6 14:31:54 Author: www.secpulse.com(查看原文) 阅读量:59 收藏

前言:

这两天朋友圈都被某通的产品被勒索的信息给刷屏了。说句实在话,我应该也算是第一手接触应急场景的,只可惜当时没分析出来到底是怎么被拿下权限的。最后才看到绿盟的博客讲到攻击的流程,才发现原来自己还是太年轻了。正好找朋友要到了存在漏洞的安装包,本地安装之后开始分析。

分析:

根据网上爆出来的poc

看到相关的文件以及参数,根据我的历史经验,aspx文件只是前端显示,业务逻辑处理还是在dll里面。

使用ILSpy查看dll里面的内容,根据路径去进行搜索

直接看到里面处理http请求的函数,ProcessRequest()

这个函数是调用父类的方法,所以直接查看CommonPage_SetupAccount_Upload类的page_load方法(asp.net网站都是从ProcessRequest方法里面生成page_load方法)

可以看到是直接写入,并没有做目录校验。但是当我进行复现的时候,却发现要登录

这个时候就注意到之前没注意到的参数preload参数,我猜测这个参数就和开关一样,所以代码里面肯定有校验,但是很不巧,搜索出来的东西太多了,没有办法判断。

此时和同事交流发现,之前一直被我忽略的东西,也是每一个asp.net网站做代码审计时都需要注意的文件:Global.asax

文件说明参考:https://www.cnblogs.com/supersnowyao/p/8159251.html

此时看到Application_PreRequestHandlerExecute方法的内容,终于看到了心心念念的preload

如果请求的是静态资源文件或者几个指定的aspx文件,就不需要这个参数也可以直接访问。Burp尝试的截图

至此真相大白,原来通过传递preload=1可以绕过认证校验。

扩散:

知道了如何进行认证,那接下来就好办了很多。先查看几个白名单文件是否存在漏洞,随机挑选了sm/upload/testuploadspeed.aspx进行查看,可以看到同样存在文件上传,但是会立刻进行删除。

本地尝试使用条件竞争进行漏洞复现。(因为可以进行文件删除,所以我们戏称至少拒绝服务有了J)

再接着查看web.config文件,发现了还存在api

同样跟进查看代码Ufida.T.EAP.Rest.RestHandlerFactory,Ufida.T.EAP.Rest可以发现根据不同的url进入不同的分支

先随手输入到burp中进行查看,返回报错

接着分析具体怎么调用

先解析,再调用

需要Method参数,接着查看发现是从services.xml中读取可以调用的类和方法

发现了一个可以执行自定义SQL的方法

去查看实现

此处遇到一个坑,一直以为代码不全,但是实际上是我没找全(脑子糊涂了)。后来在appserver目录下找到了dll文件,以ExecuteCustonSql为例

可以发现直接带入到数据库中进行执行,所以自己拼接了一下http请求包

POST /tplus/api/xxx?dl&Method=Ufida.T.EAP.Interface.IDataService.xxxx&cmd=select%20*%20from%20UFTSystem.dbo.EAP_Account%20waitfor%20delay%20'0:0:5' HTTP/1.1
Host: 10.211.55.6
Connection: close

但是挺神奇的是。。没执行。。

写在最后:

默认sql server账号:TPlusDBAdmin

默认sql server密码:tplus_12345

鸡肋福利一:

鸡肋福利二:

FOFA dork:icon_hash="-2067519629”

本文作者:白帽100安全攻防实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/186800.html


文章来源: https://www.secpulse.com/archives/186800.html
如有侵权请联系:admin#unsafe.sh