index

  • 基于服务端的验证码绕过(On service)
  • 基于客户端的验证码绕过(On client)
  • 【客户端可能存在的安全问题】
  • 【服务端可能存在的安全问题】

我们要来思考一下,什么是验证码绕过?
首先,我们在哪里会经常使用到验证码?

对咯,在各web网页以及APP的登陆界面,会让我们输入:用户名,密码,验证码这三项。
那绕过?怎么绕过呢?
那比如说,你在软件园,去B8上课,走着走着,哎?这个平时走的路被围上了,在修路,这儿走不了了,你一定要直着走过去吗?那修路的大爷估计就要抽你了。

那你咋办?你一看旁边牌子,此路不通,请绕道而行。那你可以通过一些途径绕过去嘛,是吧。那验证码也是一样的,你同样可以把他绕过去。

既想绕过去他,我们必须要了解一下他的原理,上图。

我们今天着重研究基于客户端和服务端的验证码绕过,实践出真知,让我们开启实验之旅!

基于服务端的验证码绕过(On service)

验证码错误时会报错,但不会过期,session有效期间vcode仍然有效。
思路:
判断验证码在输入错误时是否显示
判断验证码是否有非空错误
判断验证码刷新后是否还能重复利用

输入信息后先抓包

发送到repeater后修改验证码,修改验证码后显示:

删除验证码后显示:

接下来测试验证码是否能重复利用:
刷新页面后重新获取一个验证码,

Repeater不修改验证码,再回去验证,显示验证码错误

输入当前正确的验证码多次发送,显示success,说明验证码存在不过期,可以重复利用。

所以开始暴力破解

由于响应数据的不确定因素,中文在加载字典的时候是乱码,这里为了显示好看,只匹配英文部分,可以使用正则:“LoginId”:"([a-zA-Z0-9_]+)",“NickName”,最终提取的都是英文字符。

基于客户端的验证码绕过(On client)

纸老虎,验证码随意修改不报错,由前端生成且只在前端处理。
思路:
查看源码JS有无问题
判断验证码错误和为空时情况

先看JS,右键查看网页源代码

<label><input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 100px" /></label><br />                <label><input class="submit"  name="submit" type="submit" value="Login" /></label>
onclick="createCode()"调用JS生成验证码

查看源码,我们发现验证码的生成是在前端中实现的。

验证码错误时,依然显示成功。

验证码并没有什么作用,设置暴力破解方式

在前端中用js来做验证码是不安全的,很容易被绕过。

【客户端可能存在的安全问题】

1、有的网站验证码由本地js生成仅仅在本地用js验证。可以在本地禁用js,用burp把验证字段删除。
2、有的网站把验证码输出到客户端html中,送到客户端Cookie或response headers。
3、有些网站默认不显示验证码,而是在输入错误一定数量之后才需要验证验证码,开发人员可能在Cookie中写入一个标记loginErr,用来记录错误数量,则可以不更新Cookie中的loginErr值反复提交,验证码就不会出现。

【服务端可能存在的安全问题】

1、验证码不过期,没有及时销毁会话导致同一验证码反复可用。攻击者可以在Cookie中带固定的sessionID和固定的验证码字符串。
2、没有对验证码进行非空判断,导致可以直接删除验证码参数。
3、产生的验证码问题有限

Sniper(狙击手模式):一次只会对一个位置进行攻击
Battering ram(攻城锤模式):同样情况下,攻击次数减半,每次两个位置用同样的密码
Pitchfork(叉子模式):可以多组密码本payload,每个都不同
Cluster bomb(炸弹模式):交叉组合,每一个密码本里的密码都对应于另一密码本所有密码

pikachu~~~验证码绕过(on client on server)相关推荐

  1. pikachu——验证码绕过(on client)python脚本解法

    代码如下:(自行改ip和验证码): import re import requests with open('user.txt','r') as user:for username in user:# ...

  2. pikachu验证码绕过

    pikachu 验证码绕过(on server) 什么也不填,点击Login:用户名不能为空. 随意输入uesrname和password:验证码不能为空. 三项随便填:验证码输入错误. 验证码输入正 ...

  3. 验证码绕过(对验证码绕过的理解-----burpsuite)

    Pikachu是一个带有漏洞的Web应用系统, 在这里包含了常见的web安全漏洞.通过一些资料认识这个练习的靶机平台.练习需要的条件是自己首先在电脑上下载并安装相关的工具.Burp suit.Phps ...

  4. Pikachu漏洞练习平台----验证码绕过(on server) 的深层次理解

    其实这是一道很简单的题,题目中也给了提示: 提示的意思是验证码不会变,结合网上的一些解析也是对此直接默认了,但是这个验证码是怎么不变的,没有看到有人细说,也许这些思考对于一些人来说已经微不足道了,但是 ...

  5. N4-暴力破解3(验证码绕过 on server)

    首先打开pikachu渗透测试平台的暴力破解,验证码 on server章节 第一步,进行简单的试探,输入一个错误的用户名密码以及错误的验证码 发现反馈验证码错误的提示 再次试探,输入一个错误的用户名 ...

  6. 弱口令漏洞与验证码绕过——渗透day04

    目录 一.基于远程服务的弱口令攻击 (一)服务暴力破解软件 (二)实验 二.基于web的弱口令测试 (一)基于表单的暴力破解 (二)验证码绕过(on client) 1.通过Script Blocke ...

  7. 暴力破解之验证码绕过

    暴力破解验证码绕过(on server+on cookie+on client+token) 靶机 暴力破解验证码绕过(on server) 1.on server-验证码复用爆破 随便输入,通过抓包 ...

  8. iOS 中client和server的 Web Service 网络通信 (1)

    当你打开你手机上新浪微博应用或者知乎应用是.你是否会去想这些显示在手机上的图片和数据时从哪里来的?又是通过如何的方法实现的?好.那么接下来就介绍是如何实现的.过程又是怎么样的.      当我们浏览着 ...

  9. 【异常】 Ensure that config phoenix.schema.isNamespaceMappingEnabled is consistent on client and server.

    [异常] Ensure that config phoenix.schema.isNamespaceMappingEnabled is consistent on client and server. ...

最新文章

  1. C++两个队列实现一个栈
  2. JavaWeb:上传下载文件
  3. 机器学习知识点(三)方差和标准差Java实现
  4. OS_FLAG.C(2)
  5. Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案
  6. Redis进阶实践之二十 Redis的配置文件使用详解
  7. LeetCode 1930. 长度为 3 的不同回文子序列(计数)
  8. Windows8(2012) 如何改变登录界面上难看的头像,任意换!
  9. vs2015打开EXCEL文档范例及其注意事项!!!
  10. 【转】Dubbo架构设计详解
  11. (赵强老师原创)搭建CDH实验环境,三个节点的安装配置
  12. mysql 5.6 默认密码_mysql5.6配置及修改密码
  13. Git版本管理工具的使用方法
  14. android imageview 获取bitmap缩放大小,android – Imageview缩放方法“centercrop”作为代码...
  15. 探秘西诚慧联巧匠化工安全综合管理平台——实现厂区安全智能管控
  16. Tox:你想知道的内容
  17. 偷得浮生半日闲,您有啥事它出马
  18. STM32按键设计一之扫描
  19. 高考水平科测试软件,新高考选课测评app-新高考最好用的软件推荐!
  20. Linux 系统调用深思:从原理到实战

热门文章

  1. ValueError: Cannot have number of splits n_splits=3 greater than the number of samples: 1
  2. HTML强制关机,如何强制关机【处置技巧】
  3. fedora安装 设置基础软件仓库时出错
  4. VScode运行时提示找不到应用程序
  5. 人工智能对我们的影响(随便谈谈)
  6. android系统设置动态壁纸,安卓教程:设置GIF动图为手机壁纸
  7. 一、Azure Kinect 传感器 SDK 下载——Azure Kinect DK入门
  8. 2021年软考时间阶段
  9. 亲测可用--word报错:子过程或函数未定义
  10. 百度网盘8种批量修改文件名称重命名的方法