一、漏洞概述
某某集团接口默认口令泄露造成越权创建管理员账号并最终接管系统所有账号。
二、白帽奖金
¥6000
三、测试过程
1、我从身边的同事搞到了一个普通学员的账号,登录成功。
2、通过浏览后台功能,我发现了一个学员的学习排行榜前10名,通过抓包发现了用户名、公司名称、部门等字段。
3、通过修改排行榜接口,加上page=10&limit=5000字段获得了系统所有用户名。
4、获得了用户名,首先想到的就是在登录框来一波弱口令。
5、登录框没有验证码,但是有错误次数限制,无果。
6、还是登录普通学员的账号到后台,查看JS、拼接api,最终跑出来了个接口有默认密码字段“defaultPassword:xxxxxx”。
7、有了系统所有用户名和默认密码,在登录框使用burp跑下,最终成功返回多个账号使用的是默认密码。
8、登录几个看看,都是普通学号账号,如果此时提交漏洞最多给个低危。
9、再分析排行榜字段,有名称和部门,正常情况是使用当前系统建设单位的账号权限可能会更高,然后通过某某集团名称搜索一下果然有,部门还分了测试部门、运维部门等。
10、运气很好,有个测试部门的账号刚好跟我跑出来的默认密码匹配上。
11、使用测试部门的账号和默认密码进行登录,果然后台页面不一样的了,而且有个创建账号的功能。
12、能创建账号,但是只能创建普通学号权限的账号,通过抓包发现权限是通过一个“roleIdSet:1”字段控制的。
13、使用burp拦截或重放创建账号的请求包,修改roleIdSet字段的值,最终使用创建的账号和默认密码登录成功,获得了超级管理员的权限可以管理系统所有账号,收获高危漏洞一枚。
四、总结
1、JS找接口还是很有必要的。
2、果然90%的漏洞在登录后。