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

2019-05-21 14:07:038559人阅读

一、背景 

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

 

二、短信轰炸

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

举两个生活中的小场景:

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

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

 

原理解析: 

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

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

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

 001.png

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

 002.png

 

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

 003.png

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

 004.png

 

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

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

 005.png

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

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

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

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

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

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

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

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

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

 

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

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

 006.png 

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

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

007.png 

 

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

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

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

 008.png

 

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

 

四、验证码Response回显

 

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

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

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

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

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

 009.png


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

010.png 

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

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

 

五、总结

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

 


本文作者EEE,转自嘶吼,原文地址: https://www.4hou.com/mobile/16442.html


0
现金券
0
兑换券
立即领取
领取成功