金融行业某系统测试奇遇
比较早的时候接的项目,对目标做渗透测试出报告,测试的过程中遇到一个比较有趣的漏洞,就在这里分享出来了~
前期摸索挖掘
省略信息收集的过程,摸索到了这么个web页面
经典的给一个登录框,你速速出洞!
经过测试发现忘记密码需要认证手机号短信,抓包看过这个接口与没什么别的操作,只能水一个短信验证码轰炸
定位漏洞点
测试前没有给我们提供内部账号,所以要从这里的两个注册的接口来下手了
从页面上可以看得出来员工注册的页面需要填写的参数更多,而且经过尝试,普通的用户可以直接注册,员工账户是需要管理员在后端被进行审核的
抓包得知两个页面在后端走的是同一个接口,只是使用的参数不一样,除了多出来的公司、部门、职位等参数外,员工注册的类型是用type参数来控制的,那么我们只需要提交普通用户的申请,走普通用户的type(type=2),是不是就可以越权注册到后台了呢?
说干就干,经过几次测试,得到了员工账号,构造的payload如下,是直接修改员工注册的参数得到的
注册成功,并且可以模拟出对应部门,这里的权限没有管理没有分那么细致,其实就是管理员的权限,
可以直接管理站点的
后台遍历了组织架构,巡视了一圈没找到能继续深入的接口,只是有较多的敏感信息泄露,就此作罢。
因为在后台有比较多的敏感信息,审核给判了个高危漏洞。
漏洞成因
具体成因因为没有代码,无法确认,只能猜测用户的信息放到同一个数据表中的,数据库压根没有一个专门检测用户权限的字段,而是直接部门的值来判断是否有部门,以此进行鉴权来回显出不同的功能点。
如当type为2时,插入数据库的时候把公司、部门、职位信息设置为空或者是某个固定的字符串值,区分出内部人员和外部用户。那这时候我们插入对应的信息,就可以得到一个合法的后台权限账户。
原文始发于微信公众号(安全光圈):未授权注册管理员-记一个金融行业的越权
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论