熊二
发布于 IP属地四川省

逻辑漏洞——验证码篇

浅谈基于验证码的逻辑漏洞挖掘篇

一、前言:

    验证码现在几乎是在任何地方都是随处可见的,不管是登录还是注册大部分均存在

二、图形验证码:

A、验证码DOS:

    原理:图片的长度和宽度是我们自己可控制的,正常请求的width=130&height=50

    原数据较小:

    修改后:可以发现数据明显大了

    备注:  所以如果我们无限制放大下去,图片的渲染绘制,面积越大绘制时间越长,返回的数据包越大,当大量僵尸网络访问这样的放大链接时,服务器就会很消耗资源!

B、验证码可绕过:

    原理:直接删除验证码参数可绕过或者利用BP将数据包中的验证码
比如:code_verify=fals 就可以直接修改为 code_verify=true 即可跳过验证码的验证;

C、验证码可识别(爆破):


    这里有一个例子,图形验证码过于容易辨认可以用Burp Suite导入插件进行自动识别验证码,一般识别率能达到百分之90,该验证码是用于手机短信的发送,用其可以实现短信验证码轰炸,同时也可以用于只需要图形验证码就能登录的用户密码爆破;

D、验证码可重复利用(不失效)

    原理:验证码使用后为失效,像上图所示如果将数据包拦截并重放,如果还能通过,那就不需要Burp Suite导入插件识别验证码了,直接可以进行爆破或者短信轰炸。

E、验证码前端显示:

    原理:进行登录等接口的时候BP抓取到的响应数据包可以看见下一次的验证码code数值,这种也蛮多的

F、URL控制code具体数值:

    原理:图形验证码是后端随机生成的,可以直接通过url直接进行控制code验证码数值;

三、短信验证码:

A、短信可绕过:

    原理:获取验证码随意输入验证码或者Null即可进入下一步;

B、短信前端直接显示:

    原理:验证码直接在前端数据包中直接显示;

C、短信轰炸(纵向):

    原理:在一个限制时间的情况下对一个手机号,发送的短信验证码条数超过发送预期,原本是每一分钟只可以发送一条结果可以无限制的发送,会造成大量资源的浪费;


D、短信轰炸(横向):

    原理:在一个限制时间的情况下对多个不同手机号,发送的短信验证码条数超过发送预期,原本是每一分钟只可以发送一条结果可以无限制的发送,会造成大量资源的浪费;

E、验证码可爆破:

    原理:服务器如果没有限制提交的验证码的次数以及用户名和密码等信息,那么我们可以爆破这个验证码,一般使用BP的重发器模块进行4位数验证码的爆破;

F、万能验证码:

    原理:程序员在开发验证码模块时,为了方便调用验证码验证功能是否完善,故意设置了几个万能的验证码作为测试数据。在开发结束后由于程序员的疏忽,没有删除该测试验证码数据从而导致该漏洞的产生,比如:6666,0000,8888,666666,000000,888888 等;

浏览 (280)
点赞 (2)
收藏
打赏
评论