一个普通的学生用户,从统一认证平台跳转到教务系统时,系统弹出了一个安全提示,直接给出了初始密码的格式:学校域名@学号。

拿下超管用户
既然学生的初始密码规则如此清晰,那么教师或者管理员的密码是否也遵循类似的默认规则呢?
退出学生账号后,我尝试使用一些常见的教务系统管理员默认账号进行登录测试:
admin jwc jwc001 jwc01 jwc_01 jwadmin jw_admin system sys administrator
遗憾的是,使用上述账号配合“学校域名@账号”的密码规则,全部登录失败。

此路不通,于是继续使用学生账号在系统内寻找功能点,希望能发现教师或管理员的账号信息以便尝试。
经过仔细查找,在“全校课表查询”功能中,发现了关键信息。该功能点返回的查询结果里,包含了教师工号,甚至还有一个名为 cesadmin-cesadmin 的超级管理员账号。

利用发现的超管账号 cesadmin-cesadmin,结合“学校域名@账号”的默认密码规则进行尝试,成功登录系统。登录后,获得了包含超过80万条记录的海量敏感数据访问权限。

意外收获
事情到这里并未结束。细心的你可能已经注意到,在“教师”筛选栏的下拉列表中,除了本校教师,还出现了一些“附设中学”和本校“高职学院”的名称。

这让我猜测,这几个不同的办学单位很可能共用同一套教务管理系统,只是部署在不同的站点或路径下。
顺着这个思路,对当前站点的IP地址进行了端口扫描,果然发现了其他不同的Web应用。尝试使用相同的超管账号 cesadmin-cesadmin 和默认密码规则进行登录,再次成功。
接管附属学校,再获80万学生信息
成功进入附属学校的教务系统后台后,同样获取了其全部的学生敏感信息,数据量同样高达80万条。

至此,通过一个简单的默认口令漏洞,累计可访问超过160万条学生及教职工的敏感信息,包括姓名、学号、身份证号等。这起案例再次警示我们,在系统上线后,修改默认账号密码是最基本却至关重要的安全措施。对于企业或机构而言,定期进行安全审计和渗透测试是发现此类隐患的有效手段。
本次漏洞复盘的分享就到这里,希望这起真实的案例能为大家在系统安全建设方面带来一些启发。如果你对网络安全实战技术有更多兴趣,欢迎到云栈社区的安全板块与其他开发者交流探讨。
|