上网千万条,安全第一条。密码弱密码,亲人两行泪。
-----《流浪弱密码》
本次通过一条完整攻击链,拿到了教务系统的最高权限,影响800+所高校,至此次投稿前,相关问题已通告厂商。除了获得了厂商的官方致谢外,本人也拿到了人生中最大的一笔漏洞奖金,现将该思路分享出来,欢迎大家讨论交流。
学校最近新上线了教务系统。毕竟之前的教务系统实在是太垃圾了...选个课完全服务器直接崩溃。新系统年前先上线测试两天,这次通过教务处发布的选课公告可以看到:
以此为背景如果我知道老师或学生的工号/学号的话,就可以登录弱密码账户了。
相关弱口令漏洞学习可到合天网安实验室学习(http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017042513285600001)
登录之后没什么特别的,几乎所有功能都是校验通过cookie返回信息。所以导致越权就少很多。倒发现了不少逻辑问题,比如说修改密码处可越过前端密码强度规则这种不疼不痒的小问题。
Tips:任何规则放在前端校验,且后端不做验证的,均可被绕过。对于这种层面的防御,只能限制一些正常用户....
刚才我们说了,大部分的功能都通过Cookie进行校验,所以越权的话,一直没有突破口,直到在注册信息处发现tableid,就立马想遍历一波。
果不其然!当request在tableid=XXXX时返回了大量教师信息,整理之后,大概存在全校2200名教职工信息
Tips:其实不能算是严格意义的水平越权,但还有个参数可以遍历其他人的注册信息。该处的主要问题是大批量的信息泄露。通过burp放置到intruder进行爆破tableid,随后发现有大的reponse包。
刚才我们提到过,系统刚刚上线,大量教师还未上线修改密码。所以导致大量弱口令的执行。我们就可以随意登录任意教师账号
一开始我只认为,整个系统的角色有三个,学生,教师和管理员。但经过尝试登录若干教师系统弱口令之后发现一个高权限账户(学籍系统管理员),该账户可发布信息,并查看全校的角色信息。不同的权限是不一样的,例如
讲师:查询课表,和等级成绩等
学籍管理员:可维护全校学籍等
学院管理员:可维护本学院学籍
教师工作量管理员:可查询所有教师信息等
还有招生办管理员,培养方案管理员,教学评价管理员....
乱七八糟各种角色有十几个,当然了还有最高权限管理员(master)
如下图学院管理员所示,学院管理员,每个学院有若干个行政管理人员。(某些高权限的教师账号可以查看这些信息)
此时已经可查看全校近十年来,十万余人的学籍信息了。有点手抖....
Emmmm,之后探索到系统管理处,可以重置任意学生的密码(这个很正常,比如说有学生忘记密码了,你得有人重置一下吧)
一开始也就是重置一下自己的账号试一下功能。但是之后发现可以重置老师的账号....然后我进行了大胆的尝试....
Oh shit???学籍管理员竟然重置了最高权限的管理员账号....这这这明显的垂直越权啊。(之后尝试了其他管理员账号也可以重置)
Tips:垂直越权,相对低权限用户可越权至高权限账户进行操作
此处也可以认为是后台逻辑对于系统权限设计的混乱....然后输入默认账号,密码。之后,成功....进行账号初始化界面,让我更改默认密码
想了解常见的权限绕过漏洞原理以及漏洞检测利用和漏洞防护,可到合天网安实验室学习(http://www.hetianlab.com/expc.do?ec=ECIDee9320adea6e062018031511354800001)
信息收集发现弱口令攻击信息(中低危)
学生可遍历数据库数据,信息泄露教师信息(中低危)
关于教师权限管理不规范(中低危)
学籍管理员等管理员可垂直越权master权限(高危)
之前听过其他师傅的一句话:知识面宽度决定攻击面广度,知识链深度决定攻击链的长度
所以不起眼的任何安全问题,都有可能造成攻击的线索之一,甚至成为该攻击链闭环中不可或缺的一部分。从上午10点发现新教务系统发布,到晚上10点。渗透搞了12个小时,写了报告发给了教务处,随后很快厂商主动联系,所有问题得到了积极解决。
最后,感谢敬业的合天运营表姐,通过之前活动给的合天学习卡一直在学习。官网也一直在更新内容,赞一个。大家可以移步去合天网安实验室获取相关的实验了解学习。
声明:所有涉及暴露厂商及学校的任何信息全部打码...且所有漏洞已全部修复。笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关。本文为原创文章,转载请注明出处!