信息收集
上谷歌用谷歌语法,经过漫长的翻找发现一处PDF:
是某大学的某系统帮助文档,其中泄露了人员的工号和sfz
尝试登陆
此时,虽然获取了工号和sfz,众所周知,现在很多统一身份认证都是学号/工号+sfz后六位进行初次登录(一般第一次登录会要求改密码),所以立刻想到拿着信息去登录统一信息门户:
https://xxx.edu.cn/cas/login
结果无一例外,全部登录失败。
再又想到,初始密码很有可能不是身份证后六位,可能是其他组合,因此使用谷歌语法:
site: xxx.edu.cn AND intext:”密码” 或者 初始密码 缩小范围。
密码策略是sfz后六位+<span>@+年份</span>,结果依然是没有登录成功。
峰回路转
到这里,想到利用这些信息或许能够登录其他系统,因此,想到上公众号看看有没有小程序或者公众号上面的功能点测一测:
教学测评是一个功能点,关注公众号之后点进去一看,发现仍然是需要统一账户登录。
因此继续找,发现在一个类似一卡通的功能点:
此时可以看到,需要姓名、工号、一卡通密码,试了工号+sfz后6 、后8依旧无果。
OK,随便输入账号密码,先抓包看看:
通过分析数据包,我们可以获得三个信息:登录接口为/xxxByUserNo,登录的信息被加密了,变成了一个叫zhToken的参数,登录错误之后,回显JSON格式数据。
通过响应数据包,很快能够联想到状态码修改绕过登录。但是code改成什么值呢。此时右键,分析源代码:
从源代码可以分析得到,zhToken是由enSrc()函数通过AES加密得到的,并且还贴心的给了一个解密函数。
在下面这段源代码中可以看到,code=1时,即表示登录成功
因此,抓包,修改响应:
结果,需要在微信客户端才能打开:
OK, 到这一步,尝试过改微信UA头绕过=>失败,那么,接下来打开proxifier,抓微信的包进行尝试了:改code=1
结果登录失败返回登录界面了,看来从状态码修改绕过是不行了:
再重新回到源代码,仔细审计,看看有没有其他接口可以利用:
此时翻到两处接口,/xxxPhone是手机号登录方式
而/forget则是密码重置接口:这两个接口在正常访问的页面显示是看不见的,只有查看源代码才能看见。
可以看到重置密码需要的认证因素有:学号+sfz+姓名;
而在信息泄露的文档中,正好有这三要素,因此尝试重置密码:
重置成功:
重新尝试登陆,登陆成功:
接下来就可以进行其他测试. 相关漏洞已提交~
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。
免费领取安全学习资料包!
渗透工具
技术文档、书籍
面试题
帮助你在面试中脱颖而出
视频
基础到进阶
环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等
应急响应笔记
学习路线