实战|验证码突破思路

发布时间:2024年01月06日

目录

一、暴力破解突破验证码

二、时间、次数突破验证码

三、回显突破验证码

四、绕过验证码方法介绍


一、暴力破解突破验证码

方法

  1. 有的验证码输入正确一次,在一定时间内不用再输入。

  2. 有的验证码输入正确一次,会在你session中设定一个值,告诉服务器你已经通过验证码验证了。

  3. 有的验证码因为逻辑问题只是一个摆设,正常的逻辑为先对比验证码是否正确,再检测账号密码是否正确,反过来了

修复建议:

  1. 提高验证码的长度、复杂度

  2. 可限制错误登录次数、有效时间

案例

中国人寿某省公司逻辑漏洞可导致所有员工姓名、手机等敏感信息

体验盒子 - 不再关注网络安全

说明:通过爆破获取他的姓名信息,输入手机号和验证码以后,点击获取验证码。验证码直接返回了

还有一种验证码发送了之后会在15分钟或者30分钟有效,这时候可以爆破验证码,对于4位纯数字验证码:从0000~9999的10000种可能用多线程在5分钟内跑完并不是很难。对于6位纯数字验证码:六位数的验证码1000000位,单从爆破时间上来看就比4位数的多100倍,这时候爆破难度会大一点,但是可以通过多次获取验证码观看验证码规律,因为有些验证码是首位大于5,如511155、601256等等,这时候,对字典进行处理后也可以爆破出验证码。

二、时间、次数突破验证码

概念:重复提交携带验证码的数据包,查看返回包,判断次数

测试方法:

填写正确登录信息和验证码 –> 抓取提交数据包 –> 重复提交该数据包 –> 查看是否登录成功 –> 登录成功则存在验证码重复使用问题

案例:

Step1.输入正确信息点击登录时抓包;

Step2.抓包,通过修改imageField参数的大小来实现暴力提交,自设一个两位数数字字典作为payload;

Step3.查看任意响应包是否登录成功,从结果来看,暴力重复提交的数据包均登录成功。

三、回显突破验证码

概念:验证码直接由客户端生成,在回显中显示,可通过浏览器工具直接查看

测试方法:

  1. 在源码中显示。源代码审计,搜索源码中有无验证码

  2. 在COOKIE中显示。抓包时分析COOKIE中是否含有验证码

案例:

Step1.输入相关信息

Step2.抓包,得到验证码

Step3.输入验证码。验证通过

四、绕过验证码方法介绍

漏洞成因:

由于逻辑设计缺陷,可绕过验证,比如直接删除COOKIE或验证码参数可绕过、当验证不通过清空session时,验证码参数值为空时绕过等。

测试方法:

  1. 抓包,删除验证码字段,查看是否可以成功发送

  2. 抓包,正常流程下,记录验证码后的数据包,替换目标包中内容,直接发送,查看是否可以直接绕过验证码

案例:

Step1.输入正确账户信息和错误验证码,登录时抓包

Step2.删除COOKIE

Step3.客户端登陆成功

文章来源:https://blog.csdn.net/weixin_46239998/article/details/135420544
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。