0x02 锁定目标+信息收集
https:
//src.sjtu.edu.cn/gift/
挑一个喜欢的,就可以开挖了。我随便点了一个喜欢的颜色,有了目标之后就开始对它信息收集,先百度学校名字,然后进官网看一圈。只找到一个统一身份认证平台。
有使用说明和初始密码的提示,初步知道了这个系统的大致账号规律,账号是学生的学号,初始密码是身份证后6位,所以接下来的渗透思路就是找到学生的学号和ta的身份证。学号这个很好找,直接官网搜索🔍关键字“学号”,出来一大堆。
随意挑选一位学生:
这里有个技巧,就是找一些名字比较小众的,姓氏小众,名字越稀有越好,如果是大众姓+大众名,那排查起来就会很困难,因为数据量太大了。社工库,搞安全的都知道,这里我就不废话了。
在国内,我们的信息基本上都是裸奔。这里就是所谓的运气部分,如果运气好,没有重置密码,正好匹配后6位,那么一下子就能中。我就是运气属于不那么好的那种,试了后6位还是不行,正好系统有一个申诉功能,只需要填写完整的SFZ号和姓名加学号,就能申请一个新的账号,本来想截图复现一下,结果今天登上去看的时候,已经把这个功能给取消了。。。(修复速度真的效率👍🏻)
0x03 逻辑缺陷-水平越权高危漏洞
当前期的信息收集工作全部准备好之后,就可以登录到这个系统,开始进一步的挖掘系统业务相关的漏洞了。
访问里面的智慧学工系统,返回的是学生个人信息,里面的内容非常多,包括学生基本信息、家庭信息、交学费的银行卡信息、SFZ号码、手机号码、班级专业、文化成绩、宿舍信息等等,因为数据太多,我放截图的话打码不方便,所以这里就干脆不放截图了。用Burpsuite抓取这个页面的请求和响应数据包,发现有以下两个请求:
首先是这个xxx/query接口,返回的就是上述说的学生的所有信息,非常的全。改变参数id,响应会报错,所以这个接口是肯定会校验参数id,但是这里的id是加密后的字符,普通白帽子看到这里可能就会放弃了,但是这里的加密就是个纸老虎,只需要将这个加密后的值放到Burpsuite中进行全局搜索,就会找到这个id值的来源。
如上图,/lxxs/api/xxx接口中的参数就是学生的学号,响应中的xsid的值正好跟第一个接口中的id值完全相同,这下思路就豁然开朗了。
这里业务处理的顺序是先通过学号来获取xsid,然后这里的xsid当做第二个请求的参数id进行查询,然后返回这个学号所对应的学生的所有信息。
因此,只需重放或者爆破:/lxxs/api/xxxx接口,将学号进行遍历,就可以得到对应的xsid(也就是xxx/query接口的id值)查看全校任意同学的个人敏感信息(包括学生姓名、学号、班级、SFZ号、家庭通讯信息、银行卡、文化成绩、学业情况等)。
一次完美的水平越权,最后也是轻松拿下高危+兑换证书。目前漏洞已经修复。
原文始发于微信公众号(Eureka安全团队):Edusrc证书·实战分享|逻辑缺陷漏洞才是最好挖的高危!
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论