拿到了一个特征网址htyp:xxx/xxx/register.jsp?step=1
注意一个特殊参数?step,该参数有可能代表着注册的步骤,如果我们把step=1改为step=2,有可能就会绕过某些注册的步骤,比如填写验证码或者填写手机号。
填写已经注册过的用户名、或者手机号会弹窗“此手机号已经绑定”
在js文件中搜索url中的step进行代码审计,
发现鉴别账户名、绑定手机号等信息是否为已注册的依据就是,返回包中的0或者1
0是已经注册
1是未注册
接下来将账户A绑定手机号A
再在注册界面用手机号A进行注册
将A手机号(已经绑定账号A)的填入,在将step=1改为step=2,绕过了对手机号是否已经被注册的验证
成功绑定
原账户A的手机号成了-1,此时的手机号已经换绑,账号A、B都绑定至了手机号A
接下来通过忘记密码的方式实现账号接管
漏洞危害:
1.利用简单
通过系统中检验账户名是否已经注册的机制可以轻松得到用户名,而且经过测试,已经注册的用户名中存在admin admin1 administrator等管理员账户,可以轻松实现平台的全部账号接管,只需要抓包改包即可,利用技术简单
2. 泄露信息规模极大、敏感
3.受害者全程无感,不需要用户交互
4. 账号接管属于永久接管
唯一找回密码的方式就是绑定的手机号,攻击者可以接管账号后可以换绑手机。
原文始发于微信公众号(梅苑安全学术):逻辑漏洞,手机号覆盖导致账号接管
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论