首先存在一个小小的用户名枚举:
点击忘记密码,输入不存在用户名,点击获取验证码,提示验证失败:
输入存在用户,点击获取验证码提示验证码已发送:
Burp中抓取发送验证码的数据包:
发送到intruder模块进行用户名爆破,根据返回包长度的不同获取到test和system两个用户:
点击获取验证码后,随意输入验证码,抓包,此处可得到用户对应的uid值:
抓取该包的返回包,将返回的failed改为success:
进入到修改密码界面:
填入密码,抓包,此处的uid是为空的,直接放包返回参数错误,填入uid为刚才获得的uid值:
返回修改成功:
使用刚才修改的密码登录成功:
同样操作可修改system密码。
登录后有个积分排行的功能点,返回包泄漏了所有账户的用户名,加密的密码,还有部分账户手机号码、邮箱,userName为学生学号:
其中很多账号的加密密码为41b173526dbbb2c3dc9d324f788d401e,应该是默认密码。
解密为hj@12345678:
均可使用该密码进行登录。
每个学校都会有统一认证登录,似乎牢不可破,但有时倘若当我们拿到一些学生信息也能找到其缺陷。
该学校的统一认证登录有个首次登录激活的功能,界面如下:
需要填入学号、姓名、身份证号,在仿真平台泄漏的信息中,就有部分学生的这些信息,填入其中一位的,此处提示账号已激活,不用管它:
点击下一步,我填入自己的手机号码和接收到的验证码:
点击下一步,设置密码:
点击下一步,激活成功:
返回统一认证,使用学号和刚才设置的密码,成功登陆:
通过路径扫描发现swagger文档,然后在burp中构造请求包测试一些重要接口,发现存在未授权访问。
未授权查看学生学号、姓名、id、邮箱、加密的密码:
未授权修改密码:
未授权查看教学数据:
经过一番研究和试探密码加密过程:
pentest@1234--》多次哈希得到dd0fba731f9733e865d7e9be2523c5fe--》存入数据库时将此哈希进行一次md5加密--》5324bb6c6de92a00c7857511b43a6ac7
123456--》ad5d0c4ccb186517447ab2964a272678--》9213f3ce1e2180c9eb82d56d353684f7
输入的明文密码在传输过程中会先经过多次哈希得到一个哈希值,然后存入数据库时会将此哈希进行一次MD5。9213f3ce1e2180c9eb82d56d353684f7的明文密码为123456
经统计,共存在一个教师弱口令账号test1/123456,以及1873个学生弱口令账号,密码为123456:
在测试该学校某app时,运气爆棚,shiroscan提示存在shiro框架
爆破key居然还是默认key kPH+bIxk5D2deZiIxcaaaA==(叼炸天),shiroattack没找到利用链,使用feihong的shiro利用工具找到利用链CommonsCollections10,获取shell:
挖洞这件事,大多时候当然都是水水的。渐渐地,感觉自己就是个水货,干啥啥不行,干饭倒是第一。
某天突然运气爆棚,找到几个高危甚至能getshell的,感觉我又行了!!!