通过重置密码绕过OTP

  • A+
所属分类:安全文章

通过重置密码绕过OTP

前言:

一次性密码(One Time Password,简称OTP),又称“一次性口令”,是指只能使用一次的密码。一次性密码是根据专门算法、每隔60秒生成一个不可预测的随机数字组合,iKEY一次性密码已在金融、电信、网游等领域被广泛应用,有效地保护了用户的安全。

一个很常见的例子就是我们登陆微信、微博等app时,除了账号密码登陆以外,还有一种方式是手机短信验证码登陆,使用的就是OTP技术。

原理:

动态密码的产生方式,主要是以时间差做为服务器与密码产生器的同步条件。在需要登录的时候,就利用密码产生器产生动态密码。
OTP一般分为计次使用以及计时使用两种。计次使用的OTP产出后,可在不限时间内使用;计时使用的OTP则可设置密码有效时间,从30秒到两分钟不等,而OTP在进行认证之后即废弃不用,下次认证必须使用新的密码,增加了试图不经授权访问有限制资源的难度。

正文:

为保护隐私,我把目标命名为:target.com。此漏洞是由于通过API重置密码方法的错误应用,导致响应中用户的实时token发生泄漏。

前期对目标进行侦察扫描时,我意识到该站点的所有功能无一例外都与一个API直接相关,并且该目标是其API的接口。因此,从扫描bug开始是没错的。另外,当我在查看帐户设置时,我通过电话号码找到一个OTP选项,因此我将其打开并注销登陆。

再次登录后,我决定看一下绕过的速率限制以及与OTP相关的其他bug。但是很不幸,API本身有一个速率限制功能,根本绕不过。

 

通过重置密码绕过OTP

 

限速机制的响应


我还尝试了是否可以通过电子邮件地址重置密码来绕过OTP,但是该app会要求我使用新密码再次登录,并插入通过短信发送的6位OTP验证码,因此这种方式也无法绕过。

没得办法,只能乖乖查看每个请求及其响应。我打开了拦截软件,开始通过检查重置密码按钮的响应开始。这真的比数山羊还要无聊,我打开了我的帐户电子邮件,查看重置密码链接,链接中的token非常复杂,根本无法暴力破解。

我打开了链接,输入新密码,然后按了“更改密码”按钮,接着查看响应。可以确认的是,通过重置密码API的方法,为我的帐户设置了一个新的实时token并在响应中泄漏了该token。通过这个泄露的新鲜无比的实时token,我可以通过API使用帐户中的所有方法,而无需登录应用界面。

 

通过重置密码绕过OTP

 

令牌泄漏响应


但是我选择了一种无需登录即可停止OTP机制的方法,并且在查看了帐户设置之后,我能够找到那个停止OTP机制的API请求。因此我在repeater中输入了该请求,并且我能够通过API实时token来停止OTP,然后轻而易举登录应用程序。

 

通过重置密码绕过OTP

禁用OTP API请求

 

总结:

我可以通过通过电子邮件地址重置密码来绕过OTP,我们应该考虑到我能够通过API实时token使用帐户中的每种方法,从而导致重置密码方法响应中出现泄漏。但是我更喜欢找到一个方法来停止OTP,然后通过禁用OTP API请求将其停止,并且无需插入OTP代码就可以开设我的帐户。

 

通过重置密码绕过OTP

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: