某系统从0到1的突破

  • A+
所属分类:安全文章

0x00 简介

Target是一个需要通过SSO登录后才可以使用的系统,登录成功后可以通过该系统进入该部门其他系统。

没有权限的账户无法使用,这里将记录我是如何从0权限到管理员权限的完整测试步骤。

最终我通过这个没有权限的账户,发现了一处URL跳转、一处垂直越权、一处XXE、一处SQLi、一处Fastjson反序列化漏洞。

0x01 正文

通过SSO登陆Target后,可以看到没有权限访问这个系统。

某系统从0到1的突破

通过查看源代码,看到有一个_csrf字段

某系统从0到1的突破

开始阅读JS文件,https://Target/js/index.8c4440bc.js 

最先看到了如下这个接口

某系统从0到1的突破

通过该接口,发现了一个URL跳转漏洞

该接口像是一个专门的跳转功能,跳转后会返回一个token字段

某系统从0到1的突破

继续阅读JS文件

因为发现了接口可以未授权访问,因此我逐个尝试每个接口,在这个过程中收集到了很多信息,例如,管理员权限roleId=1,等等

(因为是测试完后,第二天整理的这个总结,因此有些细节我忘记了)

直接按顺序说几个关键点

关键点1:弯路

我遇到了下面的这个接口,然后在这个接口上废了一些时间

看到下图这个接口的时候,我推测可能是给用户添加权限的接口

某系统从0到1的突破

构造请求包,可以看到提示invalid csrf token,通过阅读js文件上下文,没有发现参数提示,因此只能进行fuzz

某系统从0到1的突破

推测是最开始首页中出现的csrf_token,并且推测可以复用

某系统从0到1的突破

推测角色名称的字段

某系统从0到1的突破

巴拉巴拉… 废了很多时间,包括推测参数名,阅读JS等

某系统从0到1的突破

关键点2:上传接口

上面的接口测试了一段时间后,无果,打算放在一边,继续测试一下后面的接口 后来我发现了上传接口,看到只能上传xlsx等格式,我立马想到了XXE

某系统从0到1的突破

构造上传表单

某系统从0到1的突破

构造Payload

某系统从0到1的突破

服务器监听 – 上传

Bingo,请求包如约而至

某系统从0到1的突破

此时心里大致有底了,然后重新构造Payload,开启xxer读取文件

某系统从0到1的突破

关键点3:下载接口

继续测试其他接口,找到一个下载接口,推测可以通过下载到的资料来进行突破

某系统从0到1的突破

构造请求包,提示token错误,手动添加_csrf,发现依旧不对,此时我陷入了一会思考

某系统从0到1的突破

后来我想到了最开始遇到的重定向接口会返回token 因此我直接利用js里面现成的代码来做请求

window.location.href= '/direct?url='.concat(encodeURIComponent('/Target项目名/role/exportDownloadTemplate'))

某系统从0到1的突破

打开以后是这样

某系统从0到1的突破

然后我又下载了下面这个文件

window.location.href = '/direct?url=/Target项目名/role/exportEmployee?roleId=1 '

打开以后是这样

某系统从0到1的突破

关键点4:越权成为管理员

因此我推测,或许我可以将我登录使用的员工工号通过下载的模板直接导入进去,从而获取权限

某系统从0到1的突破

利用上面的上传接口导入 然后我再利用下载接口下载roleId=1的用户

window.location.href = '/direct?url=/Target项目名/role/exportEmployee?roleId=1 '

我看到了我的名字添加上去了

某系统从0到1的突破

此时我赶紧刷新了一个首页

Bingo

某系统从0到1的突破

后续细节不再赘述,后面呢,就是我通过高权限访问到了更多的系统,扩大了攻击面

0x02 后续

后面,我通过该站点设置了管理员权限后,我获得了另外5个系统的访问权限。

某系统从0到1的突破

然后也在新的系统中,发现了SQli跟Fastjson反序列化漏洞。


米斯特安全团队是一群热爱网络安全技术的年轻人组成的线上团队,成员来自于国内各大公司,以及各大高校

曾多次获得国内知名厂商致谢以及获得多个知名奖项。

新年招新:Web安全、二进制安全、安卓安全,CTF欢迎申请加入

简历投至邮箱: [email protected]

抄送[email protected]

本文始发于微信公众号(米斯特安全团队):技术分享 | 某系统从0到1的突破

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: