密码找回,验证码绕过漏洞详解

前言

在TOP10漏洞中,逻辑漏洞被称为“不安全的对象引用,和功能级访问控制缺失”!此外,逻辑漏洞也是作为渗透测试人员必须深入了解和学习的,而且日后逻辑漏洞在我们的漏洞产出中也是占据主导地位的!常见的逻辑漏洞有:
越权漏洞,密码需改,密码找回,验证码漏洞,支付漏洞,投票/积分/抽奖,短信轰炸等;

1.验证码是什么

验证码是一种区分任何计算机的公共全自动程序。验证码根据用途主要分类两大类:

  • 图灵测试(区分人和机器,在反反爬虫中应用广泛)
  • 证明身份(比如您登录微信,支付宝,支持短信验证码登录)

网站设置验证码可以防止恶意破解密码,刷票,论坛灌水,有效防止黑客对特定用户用特殊手段,比如暴力破解的方式进行不断的登陆尝试!所以大多数网站都使用验证码!

常见的验证码种类:
中文字识别,纯数字,点击字符,数学运算,图片识别等

2.验证码绕过

<2.1前端验证码,并没有后端验证
在网站中输入验证码后,JS代码校验过你已经输了验证码,但发送数据包时,数据包中没有携带验证码,对于这种可以直接抓包跑数据即可!

<2.2验证码设置了但是没有校验
类似登陆时,验证码给出3456,但是发现可以不按照他给的验证码填,我们乱输一个也可以跑包!(比较少见)

<2.3验证码重复使用
这个很好理解,就是开发只写了验证码的校验代码,没有考虑到重复使用,比如:你在第一次登陆时输入了验证码,但是由于密码输错,重新登录,虽然验证码会变,但是你输入上一个验证码,没有提示验证码错误!

<2.4验证码空值绕过
比如我们登陆时抓包,发现数据包的登陆参数在用户名和密码后面还有其它参数,但是我们去掉这个参数后直接传用户名和密码,照样可以登录!

<2.5验证码在HTML页面输出
在网站登录页面,我们还没有输入验证码时,在控制台查看源码时,可以看到验证码!这时我们可以自动化获取验证码,进行爆破用户账号!

<2.6验证码可控
比如它的验证码在URL里,是一个URL传参,可以通过设置这个传参来控制验证码!

<2.7万能验证码
抓取登陆包跑验证码,比如四位的数字验证码,可以跑0000到9999,看有没有可以使用的!

<2.8图片验证码
我们可以多进行几次登录,看验证码的图片类型多不多,如果只是那几张来回使用,可以通过工具或者代码识别绕过!

<2.9多次登录后出现验证码
这种情况在现在比较常见,第一次登陆时不需要验证码,但是当你第一次,第二次登录失败时会出现验证码!在你登陆时,服务器是通常是通过IP,cookie以及用户名来区分你是谁的!所以我们可以从这三个方面来绕过:

  • IP:通过记录IP来识别,当同一个IP多次访问时,他会给你上验证码,我们可以通过X-Forwarded-For或者是设置代理池的方法来改变我们的IP!
  • cookie:cookie代表的是身份凭证,即使你没有登录在登录页面你也会有cookie,cookie每次登录时都可以是不同的,因为当一个cookie成功登陆后,他才会被赋予权限,如果没有登录成功,他就只是个普通的cookie!
    在这里插入图片描述
    我们可以跑密码和cookie双跑数据包来爆破用户账号!
  • 用户名:通常情况下爆破密码时,想到的都是爆破密码,我们可以调换下位置,跑用户名!

3.密码找回

密码找回与前面有所不同,他并不是用来区分人和计算机的,而是用来证明你的身份!比如常见的短信验证,邮箱验证!

4.绕过方法

<4.1验证码发送后前端返回
比如我们在密码找回页面,输入手机号后点击获取验证码时,抓包后发现,验证码就在数据包里显示,意思是验证码没有发送到手机,数据包中就已经带有验证码了!这样我们就可以直接修改别人手机绑定的账号密码了!

<4.2验证码可爆破(不限次数)
这个与上面验证码可重复使用是一个道理,我们输入手机号后随意输入验证码,抓包后,跑验证码!一般验证码都是4或6位纯数字,这个可能是开发没有考虑到验证码的时效性,导致验证码可以重复使用!

<4.3验证码可控
在找回密码时,抓包后,发现数据包中有传参值与发到手机上的验证码相同,这时可以通过修改数据包的传参值来控制短信验证码!这种危害性还是比较大的,比如可以发送垃圾邮件,钓鱼网站链接,不良网站链接!

5.补充

验证码一般都有时效性,大多是1分钟或者是5分钟!另外,有些验证码也是存在规律的,具体是什么规律要看源码,但还是有一些规律比较明显的,比如通过时间戳的后四位运算后当作验证码!在服务器上可能存在万能验证码,通常是000000,888888,碰到这种万能验证码可以上网去搜!

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值