未授权注册管理员-记一个金融行业的越权

admin 2024年9月19日13:23:13评论20 views字数 774阅读2分34秒阅读模式

金融行业某系统测试奇遇

比较早的时候接的项目,对目标做渗透测试出报告,测试的过程中遇到一个比较有趣的漏洞,就在这里分享出来了~

前期摸索挖掘

省略信息收集的过程,摸索到了这么个web页面

未授权注册管理员-记一个金融行业的越权

经典的给一个登录框,你速速出洞!

经过测试发现忘记密码需要认证手机号短信,抓包看过这个接口与没什么别的操作,只能水一个短信验证码轰炸

未授权注册管理员-记一个金融行业的越权

定位漏洞点

测试前没有给我们提供内部账号,所以要从这里的两个注册的接口来下手了

从页面上可以看得出来员工注册的页面需要填写的参数更多,而且经过尝试,普通的用户可以直接注册,员工账户是需要管理员在后端被进行审核的

未授权注册管理员-记一个金融行业的越权

抓包得知两个页面在后端走的是同一个接口,只是使用的参数不一样,除了多出来的公司、部门、职位等参数外,员工注册的类型是用type参数来控制的,那么我们只需要提交普通用户的申请,走普通用户的type(type=2),是不是就可以越权注册到后台了呢?

说干就干,经过几次测试,得到了员工账号,构造的payload如下,是直接修改员工注册的参数得到的

未授权注册管理员-记一个金融行业的越权

注册成功,并且可以模拟出对应部门,这里的权限没有管理没有分那么细致,其实就是管理员的权限,

未授权注册管理员-记一个金融行业的越权

可以直接管理站点的

未授权注册管理员-记一个金融行业的越权

后台遍历了组织架构,巡视了一圈没找到能继续深入的接口,只是有较多的敏感信息泄露,就此作罢。

因为在后台有比较多的敏感信息,审核给判了个高危漏洞。

漏洞成因

具体成因因为没有代码,无法确认,只能猜测用户的信息放到同一个数据表中的,数据库压根没有一个专门检测用户权限的字段,而是直接部门的值来判断是否有部门,以此进行鉴权来回显出不同的功能点。

如当type为2时,插入数据库的时候把公司、部门、职位信息设置为空或者是某个固定的字符串值,区分出内部人员和外部用户。那这时候我们插入对应的信息,就可以得到一个合法的后台权限账户。

原文始发于微信公众号(安全光圈):未授权注册管理员-记一个金融行业的越权

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月19日13:23:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   未授权注册管理员-记一个金融行业的越权https://cn-sec.com/archives/3180591.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息