一、验证码简介

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。

验证码可以防止:
(1)恶意破解密码
(2)刷票
(3)论坛灌水(使用Burp不断发送数据包,替换UA、Accept等无关紧要的数据为Null payloads,甚至自己添加一个数据)
(4)有效防止黑客对某一个特定注册用户用特定程序暴力破解的方式,进行不断的登陆尝试

实际上使用验证码是现在很多网站通行的方式。

验证码的种类:中文、数字、点击字符、拖动滑块、旋转校正、数学运算

验证码的核心是一个由计算机生成并评判的问题,这个问题计算机无法解答,但是人类可以解答,回答出问题的用户被认为是人类。

二、验证码绕过

验证码绕过有两种流派:
(1)图像识别,需要编写脚本
(2)逻辑绕过(后端代码有漏洞)


设置了验证码并不是完全可靠,很多时候都存在验证码绕过的情况。

漏洞案例

假设在登录处:
1、前端检验验证码,但没有后端检验。
通过JS判断能否上传。直接使用Burp抓包,然后跑数据包,绕过前端验证码的阻碍

2、设置了验证码,但是没有校验,输入错误的验证码也可以登录

3、验证码可以重复使用
例如现在的验证码是1111,登录失败后验证码会改变,但是继续输入1111却判定验证码正确。较为常见,有的验证码可以持续30分钟依旧有效。

4、验证码空值绕过
例如,抓取一个数据包,发现登录参数是user=admin&password=admin&yzm=4123。 yzm是验证码参数,如果去掉yzm的传参,我们就可以绕过验证码机制,直接传参user=admin&password=admin,验证码就失效了。

#开发的思路是,只有验证码存在,才进入验证的环节,如果不存在,直接跳过
if(isset($_REQUEST['yzm'])){}

5、验证码干扰过低,轻松使用脚本识别

6、验证码会在HTML页面输出
在HTML代码中显示了验证码,开发设计不走心。

7、验证码可控制
URL里有一个传参,可以控制验证码的开启与关闭,只要输入关闭的指令,就可以将验证码关闭。

8、验证码有规律
例如时间戳的后6位、rand函数进行随机数(伪随机函数可计算)

9、万能验证码
例如无论验证码是什么,只要输入000000就能直接绕过

10、验证码藏在Cookie里面
分析Cookie是否存在验证码的参数

11、图片验证码,类型太少,容易识别

12、多次登录后才出现验证码绕过:
简单地说,就是第一次输错密码,不需要验证码
(1)基于session:简单地说,就是基于Cookie

(2)基于IP:

(3)基于用户:爆破用户名,而非爆破密码
简单地说,就是输错三次密码就不再允许输入,故设置一个密码,爆破用户名。

企业、高校的网站会给员工、学生设置通用密码,这就是弱密码的来源之一。

随着社会对信息安全的重视,类似于SQL注入、XSS、文件上传等漏洞越来越少,但逻辑漏洞还是大量存在。

三、密码找回漏洞

区分身份的验证码:与区分用户是计算机还是人的公共全自动程序验证码不同,此类验证码是来证明身份的,例如短信验证码、语音验证码等等。

当忘记了QQ密码时,需要找回密码,此时要求把APP显示的动态密码填入框里,一般而言,手机验证码的时间又5-30分钟,如果没有对尝试做限制,就可以进行穷举,跑出验证码修改他人的密码。


找回密码有两种常用方法:
(1)找回密码,往邮箱发送明文或密文的密码,或者发送手机验证码,通过这样的方法来判断是否是本人

(2)发送一个重置密码的链接到邮箱

常见找回密码漏洞:

1、验证码发送后由前端返回
前端返回验证码,在返回包中直接显示

2、验证码无次数限制可爆破
验证码有较长的持续时间,且网站未作出限制,即可爆破,当然,如果验证码只允许提交一次,则无法爆破。

3、验证码可控

4、直接修改密码页面

5、越权漏洞
给用户A的手机发送短信验证码,抓包,将手机号码修改为自己的,即可将验证码发送到自己的手机上。

云服务器一般有两层防护,一层是云服务器对外的,一层是针对内网隔离的。

6、密保
在注册之前,预先设定一个密保问题,忘记密码时,通过此密保进行认证,认证成功进入密码修改页面。
(1)密保问题容易被猜测,例如很多的学校账号知道学号和身份证号码就可以重置校园通的密码。
(2)密保问题答案在页面中显示,数据包里面可能自带了密保答案,隐藏在在JS里面。

验证码绕过与密码找回漏洞相关推荐

  1. 验证码绕过、密码找回漏洞简介

    文章目录 一.验证码的作用 二.验证码绕过的常见姿势 (一)前端验证 (二)验证码无验证 (三)验证码可重复使用 (四)验证码空值绕过 (五)用脚本识别验证码 (六)验证码出现在前端代码中 (七)验证 ...

  2. web安全:验证码绕过、密码找回漏洞

    0x00 验证码的作用 可以防止恶意破解密码,刷票,恶意灌水,有效防止某一黑客对某一个特定注册用户用特定程序暴力破解方法进行不断的登录尝试. 0x01 验证码绕过的常见姿势 1.前端验证验证码,并没有 ...

  3. 逻辑漏洞之验证码绕过、密码找回漏洞

    一.验证码绕过 验证码: 区分用户是人还是计算机的全自动程序 验证码的作用: 1.防止恶意破解密码 2.防止论坛灌水 验证码绕过: 1.识别法(通过编写脚本实现) 2.逻辑绕过法(开发写验证码的校验的 ...

  4. 逻辑漏洞之密码找回漏洞(semcms)

    目录 什么是密码找回漏洞 一般流程 可能产生该漏洞的情况 脑洞图 1.用户凭证暴力破解 2.返回凭证 3.邮箱弱token 4.用户凭证有效性 5.重新绑定 6.服务器验证 7.用户身份验证 8.找回 ...

  5. 国外众测之密码找回漏洞

    原文出处: 国外众测之密码找回漏洞 - 先知社区 (aliyun.com) 前言 最近一直在看国外众测的文章,偶尔也逛逛hackerone,发现公布的漏洞中存有不少的逻辑漏洞,毕竟在hackerone ...

  6. 100.网络安全渗透测试—[常规漏洞挖掘与利用篇16]—[密码找回漏洞与测试]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.密码找回漏洞与测试 1.密码找回漏洞简介 2.密码找回漏洞测试 (1)源码审计:forget.php (2) ...

  7. 任意密码登录——密码找回漏洞

    警告 请勿使用本文提到的内容违反法律. 本文不提供任何担保. 一.漏洞存在的点 密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字就可以重置密码,导致可以暴力破解. 密码找回凭证可从客户端直接获 ...

  8. 安卓开发之使用Mob的短信接收验证码达到忘记密码找回密码功能*(自绘界面)

    /** * Created by 岗哥 on 2016/12/17. *下面使用的ShowToast是自己写的一个类,当然你们改成Toast就行了 *还有就是如果需要使用Mob发送验证码找回密码的话, ...

  9. web安全入门(第八章-1)验证码绕过

    一.验证码作用 0,之前都是普通漏洞,今天开始的都是逻辑漏洞逻辑漏洞:~不是代码层面的错误~另外逻辑漏洞基本可以是通杀~现在的很多大厂,基本不会有普通漏洞,但是逻辑漏洞是很难避免 1,本质:简单的说, ...

最新文章

  1. 老李分享:Web Services 组件 2
  2. 红杉树信息助力XToolsCRM “SaaS”领域的巨人联盟
  3. 【.NETCore 3】Ids4 ║ 多项目集成统一认证中心的思考
  4. php 判断函数禁用,php禁用函数设置及查看方法的介绍(附示例)
  5. luogu P5338 [TJOI2019]甲苯先生的滚榜
  6. Netty工作笔记0064---WebSocket长连接开发3
  7. 分布式多副本一致性协议:paxos
  8. Python中文文档概览
  9. 函数数列极限求法总结
  10. 帝国cms !--list.var1--,!--list.var2--的终极用法
  11. 信息安全工程07875 自考软件工程 助学班复习纲要
  12. 【esn】 学习回声状态网络
  13. linux上的两种可执行程序
  14. 地图数据的类型及编码方法
  15. 计算机系单身率排行榜,中国高校单身率排行榜,第一名实至名归!
  16. Linux协议栈--NAPI机制
  17. 裸机和RTOS系统区别与联系
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于客户时间窗变化的物流配送管理系统设计ro75j
  19. MIT6.830-2022-lab4实验思路详细讲解
  20. 开放英语计算机考试,(荐)最新电大《英语I(1)》(开放英语1)完成句子、翻译题归纳汇总复习小抄.doc...

热门文章

  1. 5G物理信道和物理信号定义
  2. 基于html5绘制上海地铁图 - 路况信息展示
  3. PyTorch 报错:TypeError: exceptions must derive from BaseException
  4. 创建hive表,指定存储和压缩格式
  5. Python升级之路 (Lv2 ) Python基本概念
  6. 创业史|苏萌:我与百分点科技的故事
  7. 【2012年腾讯俱乐部ACM赛新手组1000】我水平弱爆了—Love Message
  8. Win10以管理员身份打开命令提示符CMD的3种方法
  9. QML charts 鼠标动态跟随数值(十字交叉定位)
  10. 《SQL 入门教程》第01篇 SQL 简介