谈谈手机验证码的安全漏洞与利用

EEE Web安全 2019年3月5日发布
Favorite收藏

导语:手机验证码是整个web系统的入口处较为重要的功能业务,负责用户的注册与密码的找回等相当重要责任。

一、背景

手机验证码往往是面对用户的重点业务,那么本期就关于手机验证码所出现的安全问题,做个小小总结,文章如有不完善之处,欢迎各位同学共同交流讨论。

二、短信轰炸

网上之前会曝出一些关于“短信轰炸机”的新闻。

举两个生活中的小场景:

1. 你在淘宝上给了别人差评,随后几天遭到若干天的短信轰炸。

2. 你 工作/上学 时,跟某些人闹了矛盾,事后半夜你遭到各种电话轰炸。

原理解析:

下面我们以一个例子来更方便的讲解该漏洞。

(以下所有漏洞已经通报厂商,并已修复,读者切勿尝试)

这是某央企商超业务的公众号,让我在公众号绑卡。

图片1.png

我们点击  【我的账户】==》获取验证码:

图片2.png

这里我们可以通过burpsuit抓个包。

图片3.png

返回了Unicode编码,我们这里解码。

图片4.png

既然确定可以发送成功的话,那我们不断的GO,不断的重发该数据包。

如果后端没做校验的话,就造成了短信轰炸,如图:

图片5.png

这时候我们已拿到手动轰炸的效果,这就是轰炸机雏形。

疑问1:那么如何优雅的做一个小小的轰炸机呢?

分析好获取验证码的请求包,使用Python的request库,发送请求。

疑问2:加个while true死循环,会一直发吗?薅羊毛,可能会被发现的吧?

原理上,如果对方没有做反制策略的话,你手机应该是不会消停了,但薅死这只羊,肯定会发现啊。会把厂商的短信费全部花完….

疑问3:有的不只是手机验证,也有的是电话轰炸呢?

其实也同理,只不过有的买的是短信业务,一部分买的是电话验证码业务。当然不排除人工打电话或者其他的方式..

Warning: 各位看官请在遵循《网络安全法》的情况下,开展学习与实践活动。

三、验证码过短,造成的任意用户登录

漏洞主要表现是,验证码发送的常常是四位的纯数字,四位数字的话,基本上几分钟就可以爆破出来验证码是什么了…

下面我们拿某传媒平台来举个栗子。该传媒平台类似 某头条,属于咨询类行业的二级梯队。日活跃流量上百万了。发现在账户登录(手机验证码登录)处,可以获取验证码。(具体抓包细节上章我们说过)发送验证码之后发现验证码可能存在暴力破解。

图片6.png

30分钟有效时间,绰绰有余了。这里,输入手机号,验证码为1111。

发送到intruder模块后,准备开始暴力破解。

图片7.png

从结果上看Length进行排序,验证码4112   payload命中。

所以短信验证码可被暴力破解,可登陆任何用户账号。

当然了,如果这时候能搞到内部人员的手机号之类的话,获取到web系统权限自然也有可能啦。

 

图片8.png

Warning: 各位看官请在遵循《网络安全法》的情况下,开展学习与实践活动。

四、验证码Response回显

通过前两章的内容,我们已经可以看到,验证码的不安全逻辑已经造成了严重的安全问题。 那么还有哪些高危问题值得我们关注呢?

想来想去也就剩下 验证码Response回显问题了….

有的研发人员想偷个懒,逻辑没有做清楚。

当你发送验证码的请求包之后…..甚至会在Response包里面看见验证码。

下面我们拿某学术平台,平台有两万余名会员,且大多会员来自全国各大高校教师。来举个例子:

图片9.png

发送获取验证码请求后,我们来抓到以下的返回包:

图片10.png

对….甚至帮你把爆破的事给你省了,直接在返回报里反馈了给你发送的短信所以说,没事抓个包看看…..有可能门口就有个高危等着你报呢。

Warning: 各位看官请在遵循《网络安全法》的情况下,开展学习与实践活动。

五、总结

手机验证码是整个web系统的入口处较为重要的功能业务,负责用户的注册与密码的找回等相当重要责任。所以未来在做安全渗透的时候,小伙伴们不妨可以在手机验证码里看一看,也许会有意外收获与惊喜。

本文为 EEE 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址: https://www.4hou.com/mobile/16442.html
点赞 6
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论