免责声明:文章来源于真实渗透测试,已获得授权,且关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
前言
最近一直想更新一篇漏洞挖掘的文章,于是准备研究一下,最后决定对教育SRC下手。结果连挖了三个漏洞都是管理员弱口令,实在是没什么含金量。昨天突然想起来,之前在校的时候发现过我们学校内网有个数据库漏洞,也不知道修复了没,这种直接获取的大量数据信息的漏洞,还是很有价值的。随即掏出账号密码,找到我们学校官网,学号+密码成功进入。为了方便测试,直接要过来女朋友的账号密码,两个账号,美滋滋,开始测试。
一、学生照片遍历
登录一站式服务大厅系统,一上来就看见了我的入学照片,单击后进入个人信息界面,"学号"、"姓名"、"身份证号"、"手机号"等等,信息相当齐全。既然 "身份证号" 都有了,当然要测试一波越权获取敏感信息。
F12打开网络,刷新一下网页,看看都加载了那些js文件,翻看一下。往下翻看的时候看见了一个jpg格式的文件,命名很奇怪。定睛一看,这不是我身份证号吗,随即点开查看,好家伙,原来是我的照片文件。目录结构大概就是 "/学号/身份证号.jpg" ,这个访问是需要鉴权的,但是因为是直接获取图片文件,猜测并没有对访问目录和文件进行限制,可以查看他人照片,当然这遍历难度也是相当大的,因为需要获取身份证号码。
不过都已经发现这个功能点了,当然要测试一下。登录到女朋友的账号,同样的方法翻找jpg文件,很快就找到女朋友的照片,但是发现图片名称和我的照片的图片名称命名格式不一样,她是用学号命名的,大概解构是 "/学号/学号.jpg" 。先替换成我的照片保存的目录,发现是能成功获取我的照片了,那就没有问题了,接口确实可以直接获取别人的入学照片。
那这里为什么命名格式会不一样呢?当时就想到问题所在,我女朋友是比我小一届的,会不会他们那一届都是这个格式。我自己学校的学号格式,我当然是很清楚的,直接生成一个学号的字典,利用Burp的Battering ram(破城槌)模式,爆破一下,成功获取了大量的照片。后面经过测试,21届的格式是 "/学号/身份证号.jpg",22届和23届都是 "/学号/学号.jpg",20届和24届都没获取到,估计命名格式又不一样,但这不重要,这个照片量已经相当大了,没用的漏洞+1。
二、信息泄露
前面经过了一个小插曲,首要目标当然还是获取身份证号。继续翻看,翻找了一下,没什么大收获。用Burp抓包,看一下请求包中有什么信息,能不能越权。
可以看到,这里目录是 /user/info ,而使用的是GET请求,也只有在Cookie中有鉴权值了。一个一个看,首先是 SESSION 参数,这里经过替换和删除测试,这个参数是可以直接删除掉的,并不影响获取数据。
再上面分别是是 webvpn_username 和 _webvpn_key 两个参数,而 _webvpn_key 的值是一段 JWT ,webvpn_username 的就是一段正常URL编码的值,解密以后发现和两个一样都包含了学号和时间戳。可惜替换测试以后发现也是都没什么用,甚至 webvpn_username 参数一样可以随意删除,并不影响获取数据的结果。
而 _webvpn_key 参数不能被删除,否则会报错,但是也实在是没什么用,里面的值改动后同样不会影响结果的查询。
最后,只剩下一个 CTTICKET 值了,很明显这不是一个可以直接解密的值,前面翻找也没找到他加密的代码。经过替换测试之后,可以看到,确实成功查看了另一个账号的个人信息页面。(利用我登录的账号替换成我女朋友账号的 CTTICKET 值)
但是因为无法解密这段值,只能先放一边,看看其他的功能点可以有什么收获。
而在翻找的时候,我发现了一个新的系统界面,一个专门针对在学生提问的系统界面,可以向平台中提问,而各个责任部门的老师会负责回答。
想着测试一下有没有注入点,用Burp抓了一下包,经典 1' 测试,正常回显了,但响应包中回显的信息看着不像界面中展示的信息。重新测试,直接点击查询,抓了一个正常的响应包,里面中直接回显了留言学生的学号和手机号,一共562条评论都可以回显,正好结合上面发现的照片遍历,可以查询留言学生的照片,没用的漏洞又+1。
三、存储型XSS配置获取Cookie
都碰到留言框了,当然要测试一下存不存在XSS,测试了一下,直接一发入魂。标题框存在储存型XSS漏洞,可以获取 Cookie 信息。
而且经过多次测试,以及对之前抓取到的数据包的观察分析,这里面的 CTTICKET 和前面测试的 CTTICKET 值是一样的。到这里面就闭环了,我们可以利用XSS漏洞获取 CTTICKET 的值,然后进行替换,访问个人信息界面获取敏感数据信息。
而在访问这个系统中其他界面也同样用到了 CTTICKET 值,可以说获取这个值以后就可以完全获取其他用户的权限,但是前提是该用户不退出系统,退出系统后该值会被注销,利用难度也是比较大的。
总结
总结了对母校的渗透测试过程,说实话,挖掘的各个漏洞都没有太大的危害。一、遍历学生照片,这不属于敏感信息;二、学生学号和手机号的数据泄露,同样不属于敏感信息;三、后台储存型XSS,该漏洞没有什么实际用处,虽然结合其他接口可以实现越权查看敏感信息,但是利用难度太大,要考虑到老师会对留言审核、跨域请求、Cookie时效等问题;四、逻辑问题,当然在测试的时候不止测试了文章中展现的,同时对更改密码、手机号等功能都做了测试。后台更改手机号没有对之前绑定的手机号做校验,可以直接更改。登录页面通过手机号更改密码需要验证密码强度(大小写+数字或特殊字符,长度大于8),但是后台更改密码却没有这些限制了,可以任意修改,这些都是属于逻辑问题。
重点还是在于思路,希望下次就能直接拿到高权限用户或者遍历敏感数据。
原文始发于微信公众号(网安日记本):漏洞挖掘—组合拳获取敏感数据信息
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论