验证码漏洞

发布于 更新于
本文目录
  1. 1. 介绍
  2. 1.1 验证码漏洞
  3. 1.2 验证码作用
  4. 1.3 验证码漏洞分类
  5. 2. 应用
  6. 2. 1 验证码可重复使用
  7. 2.1 验证码可绕过
  8. 2.1.2 基于表单的暴力破解
  9. 2.1.1 验证码绕过(on server)
  10. 2.1.3 验证码绕过(on client)
  11. 法1 删除js模块
  12. 法2 禁用js模块
  13. 3. 验证码识别工具pkavhttpfuzzer
  14. 1. 验证码识别: phpwms1.1.2GBK cms

技术文章接口测试

顾名思义,验证码漏洞就是验证码本身存在问题,或者是与验证码相关的内容存在问题。

1. 介绍

1.1 验证码漏洞

顾名思义,验证码漏洞就是验证码本身存在问题,或者是与验证码相关的内容存在问题。

1.2 验证码作用

客户端发起请求->服务端响应并创建一个新的SessionID同时生成随机验证码,将验证码和SessionID一并返回给客户端->客户端提交验证码连同SessionID给服务端->服务端验证验证码同时销毁当前会话,返回给客户端结果。

1.3 验证码漏洞分类

  • 短信验证码

  • 短信验证码可爆破--针对用户找回密码

  • 短信验证码可重复使用

  • 短信验证码回显本地

  • 短信验证码绕过

  • 登录访问验证码

  • 验证码重复使用

  • 机器学习识别验证码

2. 应用

2. 1 验证码可重复使用

http://10.211.55.17:82/system/

http://10.211.55.17:81/admin/

在这里可使用burpsuite进行暴力破解,验证码会一直不变,可以重复使用。

2.1 验证码可绕过

2.1.2 基于表单的暴力破解

没有防护,直接进行暴力破解即可

以下都是使用pikachu的靶场来进行测试

2.1.1 验证码绕过(on server)

这里只开启了session但并没有关闭,所以可以重复使用验证码

直接用bp抓包之后发送到爆破模块进行测试

2.1.3 验证码绕过(on client)

法1 删除js模块

这里使用了js进行验证码的验证,因此可以使用bp抓取验证码之后删除该模块

删除

直接进行暴力破解

法2 禁用js模块

  • 火狐禁用js:about:config

刷新界面,即可绕过验证码

3. 验证码识别工具pkavhttpfuzzer

1. 验证码识别: phpwms1.1.2GBK cms

搭建环境:

windows7

phpstudy php版本5.2.17

phpwms1.1.2GBK cms 源代码

在url中打开地址即可安装

http://10.211.55.9/phpwms1.1.2GBK/install/

搭建之后即可进行入后台和前台页面

这里使用右键在新界面打开这个验证码

http://10.211.55.9/phpwms1.1.2GBK/include/chkcode.inc.php

使用pkavhttpfuzzer这个工具来进行识别测试

首先还是需要使用bp抓一个包

将内容传到pkavhttpfuzzer中去,分别添加标记

到验证码识别模块,对识别范围和字符进行自定义

当输入验证码正确,但是密码或账户信息错误的时候会返回

当输入验证码错误的时候会返回

因此在软件里面如下设置:

  • 设置无条件跟踪重定向,长度固定为4位

  • 匹配规则中在正则表达式输入:<span class="ne-text">用户名或密码不正确</span>

  • 在重试规则中添加 <span class="ne-text">验证码错误</span>

回到变体设置模块,添加一个外部字典

直接在发包器进行测试,爆破成功

image.png

来源:testingpai

继续阅读