一次有意思的OTP绕过

admin 2022年6月22日13:03:32评论78 views字数 938阅读3分7秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


背景介绍:


今天的故事来自一位名叫Vaibhav Kumar Srivastava的白帽子,他的这次OTP绕过很有趣,希望各位也能从中有所收获,那么这个绕过究竟是怎样的呢?让我们一起看看吧。

故事开始:

目标是一个处理教师登录和教育内容的政府网站,以下统称该网站为“example.com”,它在登录界面上的左上角有一处“教师登录”入口的按钮:

一次有意思的OTP绕过


为了以教师身份登录,你需要提供注册的手机号码,然后 example.com 将进行验证,而白帽小哥家里刚好有教育部门的成员,于是他尝试了使用这些号码进行登录,顺利通过验证后发现确实能够登录。

这一切似乎并无什么问题,但是白帽小哥在 网站的JS脚本中发现了一个联系电话:

一次有意思的OTP绕过

通过点击教师登录并输入在脚本中找到的电话号码,当点击“验证”按钮的那一刻,屏幕上弹出一个发送 OTP 的界面(如果我输入自己的手机号码并点击验证,那么网站会禁止这样的操作,因为这个号码并未在该网站中注册为教师)如果点击发送 OTP,那么 OTP 的信息将会发送给受害者的手机号码,攻击者是无法查看到的。

一次有意思的OTP绕过

于是白帽小哥尝试在 Burp 中拦截请求以查看响应数据包中是否会泄漏 OTP信息,很不幸,并不存在漏洞。于是白帽小哥开始检查网页元素并查看手机号码字段,从下面的截图中可以看到,手机号码字段已被“disable”,但是如果我们将状态更改为“enable”,我们就可以实现手机号码的修改:

一次有意思的OTP绕过

此时,使用自己的手机号码替换掉受害者的手机号码,然后点击“发送 OTP”按钮:

一次有意思的OTP绕过


成功收到验证码信息:

一次有意思的OTP绕过


顺利以受害者的身份登录了该系统:

一次有意思的OTP绕过

小哥迅速地报告了该漏洞,并获得了该网站的致谢:

一次有意思的OTP绕过

总结:

让我们来一起回顾一下本文中所利用的技巧有哪些:

  1. 网站的JS脚本中暴露了手机号码
  2. “验证”过程会在服务器端对手机号码进行验证,但“发送 OTP”时并没有验证,因此导致了OTP绕过
  3. 通过上面的手机短信截图可以看到,只有4位数,因此该网站也存在 OTP 暴力破解隐患


OK,今天的故事分享就到这里吧,你学废了么?一次有意思的OTP绕过

====正文结束====

原文始发于微信公众号(骨哥说事):一次有意思的OTP绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月22日13:03:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一次有意思的OTP绕过http://cn-sec.com/archives/1134015.html

发表评论

匿名网友 填写信息