暴力破解之验证码(pikachu)

暴力破解之验证码

验证码用来做什么?

  1. 登录暴力破解
  2. 防止机器恶意注册

验证码的认证流程

  • 客户端request登录页面,后台生成验证码
  1. 后台使用算法生成图片,并将图片response给客户端;
  2. 同时将算法生成的值全局赋值存到SESSION中;
  • 校验验证码
  1. 客户端将认证信息和验证码一同提交;
  2. 后台对提交的验证码与SESSION里面的进行比较;
  • 客户端重新刷新页面,再次生成新验证码
  1. 验证码算法中一般包含随机函数,所以每次刷新都不一样。

验证码绕过-on client

常见问题

  1. 使用前端js实现验证码;
  2. 将验证码在cookie中泄露,容易被获取;
  3. 将验证码在前端源代码中泄露,容易被获取;

实验演示

随便输入账号不输入验证码
随便输入账号,不输入验证码
输入一个错误的验证码
输入一个错误的验证码
查看页面源代码,可以发现,验证码的随机获取是由前端的JavaScript所控制
查看页面源代码
输入正确的验证码后,打开burpsuite,选中http,将其发送到Repeater中

在这里插入图片描述
可以在Repeater中修改内容来观察
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/8b5e707ee17a4092976440a841fc049e.p

输入正确的用户名,密码,随便输入一个验证码,观察Response,可以看到登录成功。说明登录的成功与否,与验证码没有关系。
在这里插入图片描述
将http发送到intruder中去,进行暴力破解,验证码无法破解,只对用户名和密码进行攻击
在这里插入图片描述

观察长度可知,由两组正确的用户名和密码,查看Response显示登录成功。
在这里插入图片描述
在这里插入图片描述

验证码绕过-on server

常见问题

  1. 验证码在后台不过期,导致可以长期被使用
  2. 验证码校验不严格,逻辑出现问题
  3. 证码设计的太过简单和有规律,容易被猜解

实验演示

先抓一次包,发送到Repeater中
然后刷新验证码
记住前端的验证码,打开burpsuite
在这里插入图片描述
输入在页面显示的验证码
在这里插入图片描述

在这里插入图片描述
然后更改用户名和密码,不更改验证码。

在这里插入图片描述

在这里插入图片描述
此处验证码得到了第二次使用,说明验证码可以长期使用。

暴力破解防范措施

  1. 设计安全的验证码(安全的流程+复杂而有可用的图形);
  2. 对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2消失;
  3. 必要的情况下,使用双因素认证;

token对放暴力破解的意义

一个简单的token的实例

//生成一个token,以当前微妙时间+一个5位的前缀
function set_token(){
	if(isset($_SESSION['token'])){
       unset($_SESSION['token']);
       }
       $_SESSION['token']=str.replace('.','',uniqid(mt_rand (10000,99999),true));
}

一般的做法:

  1. 将token以“type= ‘hidden’ " 的形式输出在表单中;
  2. 在提交的认证的时候一起提交,并在后台对其进行校验;

但是,由于淇token值输出在前端源码中,容易被获取,因此也就失去了防暴力破解的意义。一般Token在防止CSRF上会有比较好的功效。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

joker_fan`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值