声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 |
背景介绍:
这位白帽小哥名叫“Sriram Kesavan”,是一位谷歌视频安全研究员,也是Techgreech CyberSolutions创始人兼首席执行官。
什么是OTP?
英文全称One Time Password,又称“一次性口令”,是指只能使用一次的密码。一次性密码是根据专门算法、每隔60秒生成一个不可预测的随机数字组合,iKEY一次性密码已在金融、电信、网游等领域被广泛应用,有效地保护了用户的安全。
百度百科
漏洞挖掘:
白帽小哥一开始也是对目标网站开展信息收集,这个目标网站是印度最大的一个视频分享网站,有点类似国内的“抖音”,他先是考虑注册一个账号,然后尝试在用户控制面板中寻找XSS漏洞,因为他个人比较喜欢寻找XSS漏洞。然后来到了下面这样一个登录页面:
登录页面有一个用手机号码登录的方式,它允许用户在输入手机号码后,输入收到的4位数的验证码,于是白帽小哥像大多数人那样,尝试使用“intruder”爆破OTP验证。
很不幸,当在爆破达到10个数据请求时,后面请求的数据包就被阻止了。
但是白帽小哥并没有轻易放弃,他随后转向创建账户,再次尝试利用爆破来突破OTP验证,但依旧失败了,小哥在喝了几杯咖啡(骨哥画外音:什么牌子的咖啡,我也想试试)后,小哥决定尝试Action>Do intercept>Response来分析请求与响应,这种方法允许攻击者修改发送给浏览器的响应。
通过在“创建用户”的表单中发出请求,在输入正确的OTP验证码后,小哥开始使用Do intercept>Response来分析响应信息,令其惊讶的是,响应信息非常简单:
{“data”:{“det”:{},”blocks”:[]},”gsc”:”700"}
虽然小哥并不清楚这段响应信息是什么意思,但是他发现在用户输入正确的OTP验证码时,才会出现这段信息,如果输入的是错误的验证码的话,会出现下面这样响应信息:
{“gsc”:”615",”message”:”Invalid verification code”}
于是白帽小哥立刻用朋友的手机号码注册账户,并输入错误的OTP验证码,然后尝试修改响应信息。POC演示:
1、修改响应信息:
2、成功注册:
非常棒!白帽小哥在无法获得正确OTP验证码时成功利用朋友的手机号码注册了新账户,这同时也表明,他可以使用任意手机号码进行批量账号注册。
====正文结束====
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论