原标题:你知道为什么手机短信驗证码是什么密码需要限定时间么
随着移动互联网和智能手机的快速发展,原本功能单一的手机号发生了很大改变如今,似乎每个人嘚手机号都绑定了各种账号例如支付宝、银行卡等重要的账号。手机绑定最主要的表现就是短信验证目前因其便捷的验证方式被广泛使用。但与此同时人们也为其安全性而担忧。
经研究发现在手机短信验证码是什么密码中,4位验证码是什么密码尤其不安全为什么這么说呢?攻击者可以通过输入掌握的手机号码,在未获取验证码是什么密码的情况下直接获得短信验证码是什么密码,从而绕过手机短信验证的安全环节一般手机验证短信是4位,也就是说为长度为10000,通过近10000次第穷举实现对密码的验证具体我们一起看看下面这个验证過程就懂了。
打开某企业信息机如图1所示,在页面中有“密码找回”功能本次要破解的密码用户为管理员admin账号,系统设计的目的是根據用户名和手机号码短信验证来确定是用户本人但其设计和验证过程存在缺陷,使得攻击者可以暴力破解验证码是什么密码重新设置戓者获取指定用户的密码。如图2说是在找回密码用户中输入“admin”。
图2设置密码找回的用户
2.设置密码找回的手机号码
在密码找回中设置密碼找回的手机号码如图3所示,设置完毕后需要用户输入一个验证码是什么密码来验证。
图3输入验证码是什么密码进行验证
(1)设置代理并實施拦截
使用BurpSuiteProxy(代理)—拦截HTTP/S的代理服务器也即显示为“Intercept is on”,它可以作为一个在浏览器和目标应用程序之间的中间人允许进行拦截、查看鉯及修改在两个方向上的原始数据流。在找回密码页面输入验证码是什么密码“1234”并使用本地代理抓取post包如图4所示,可以看到txtPassWord=1234
图4设置代悝并实施拦截
发送到Intruder(入侵)一个定制的高度可配置的工具对web应用程序进行自动化攻击,如:枚举标识符收集有用的数据,以及使用fuzzing 技术探测常规漏洞将该数据包发送到Intruder,如图5说是在验证码是什么密码增加一个变量$1234$。
图5设置一个入侵(破解密码)变量
在入侵页面上单击“Payloads”如图6说是,其缺省初始参数为字母和数字实际情况要根据当前渗透测试环境自行判断和设定。在本例中由于验证码是什么密码是长度為4位的数字因此Min Length(最小长度)和Max Length(最大长度)均设置为4.
当前网站验证码是什么密码经测试为数字,因此将Character set设为:01,23,45,67,89。Payload count:有效的驗证码是什么密码总数量为10000设置完毕后如图7所示。
图7设置有效载荷、字符串和长度
单击“Options”在“Number of threads”中设置线程数为100,这里可以根据情況可以是1-10000,但一般不会设置太多50-100为比较适宜的数字。
单击菜单中的“Intruder”上的“Start attack”进行暴力破解尝试如图9所示,其破解结果显示如下破解成功的值,其Status会不一样错误的值是200,正确的值为302
通过查看破解反馈回来的状态值,知道本次破解的Payload:1245HTTP状态码Status为302,明显是一个跳转返回的Length长度为451 。正确的验证码是什么密码为1245我们尝试输入,发现验证码是什么密码正确如图10所示,成功破解用户密码找回的手機密码验证短信码从而获取管理员的密码。
至此我们可以看到四位手机短信验证码是什么密码最终被成功破解了。
那么我们该如何能提高手机短信验证的安全呢?这里笔者建议大家可以通过限定手机短信验证时间和加长验证字段的方式来提升短信验证安全性。
(1)短信驗证码是什么密码验证时间需要设置得更短应该在30秒以内。由于需要穷举10000次网络发包时间较短,尽量避免包从同一个地址的多次提交
(2)将短信验证码是什么密码由4位增加到6位,且使用数字+字母的方式增加了破解的难度。
之所以要这样做是因为想要破解必须在短信验證码是什么密码的有效时间内去做,而缩短有效时间和加长的短信验证码是什么密码就增加了被暴力破解的难度