《业务安全实战演练》验证码安全测试

发布时间 2023-12-17 21:01:00作者: 橙子全栈测试笔记

一、验证码暴力破解测试

暴力破解 测试:就是攻击者使用自己的账号和密码作为一个字典,一个一个去尝试,看看是否能够登录成功,因为理论上来讲,只要字典足够庞大,就可以破解成功的!!!  

pikachu靶场实战:

随便输入账号密码 111  21212

 返回bp看数据包

 这里没有验证码,多尝试几次发现也没有登录次数限制,准备开始暴力破解。

 选择暴力破解类型,选中username和password的数据,点击add添加为动态变量。攻击类型为集束炸弹

 分别添加1和2字典

 点击开始攻击

稍等一会可以看见一个length长度不同的结果,这个就是正确的账密,下面也可以看到数据包里面的变量。

二、验证码重复使用测试

第一步:随便输入一个 账号 和 密码,验证码也随便 进行测试(用 Burp 进行抓包.)

 bp工具拦截,并发送到重放器

 提示验证码错误

 回到网站拿到正确的验证码并填写到bp重放器正确得参数上

 重新发送请求,提示用户名或者密码不存在,说明验证码不过期的问题,得到这个结论,我们开始暴力破解

 暴力破解步骤和上一关类似

 

 点击开始攻击

 破解成功

备注:

如果是前端JS代码实现的验证码 测试,只需要开启js屏蔽,重复以上爆破步骤即可

三、验证码客户端回显测试

测试原理和方法:
当验证码在客户端生成而非服务端生成时,就会造成此类问题。当客户端需要和服务器进行交互发送验证码时,可借助浏览器的工具查看客户端与服务器进行交互的详细信息。

测试过程:
攻击者进入找回密码页面。输入手机号,获得验证码。服务器会向手机发送验证码,通过浏览器工具查看返回包的信息,如果返回包中含有验证码证明,存在验证码客户端回显.
第一步:使用浏览器访问该网站,在找回密码页面中建议输入一个手机号码。
第二步:点击下一步按钮,即可向该手机发送短信验证码。按 F12 键启动浏览器调试工具可以看到短信验证码在本地生成.(按 F12 键 --> Network --> Name --> Respone 【可以看到验证码】)或(使用Burp Suite 抓包查看响应包的内容可以看到.)
第三步:输入本地生成的验证码.
第四步:进入重置验证码页面.
第五步:重置密码成功.

四、验证码绕过测试(修改接口respone返回包,填写正确的返回值)

测试原理和方法:
通过修改前端提交服务器返回的数据,可以实现绕过验证码,执行我们的请求.
测试过程:
攻击者进入注册账户页面,输入任意手机号码获取验证码。在注册账户页面填写任意验证码,提交请求并抓包,使用抓包工具(Burp Suite)查看并修改返回报的信息转发,返回数据包查看是否注册成功。
第一步:首先输入任意手机号码和密码。我们以此 “ 13333333333 ” 为例,点击获取手机验证码,由于我们无法获取到 “ 13333333333 ” 这个验证码的真实验证码,我们随机填写一个验证码“ 33333 ”.
第二步:点击注册并通过 Burp Suite 对数据包进行拦截,右击选择 DOintercept >> Response to this request
第三步:点击 Forword (放包) 后,在 Burp Suite 工具里显示的就是网站返回的数据包,因此我们填写的手机验证码 “33333” 肯定是错的。此时 res_code 的值为1,为了证明认证码错误时 res_code 的值为1,我们将返回的数据包中 res_code 的值改为0,从而实现绕过验证码。
第四步:点击 Forword (放包) 后,就可以成功注册该电话号码“ 13333333333 ” 的账号,并成功登录到用户页面。

五、验证码自动识别测试

可参考这篇文章

https://www.cnblogs.com/Xor0ne/articles/13550331.html