暴力破解的绕过和防范

  • 爆破之不安全的验证码分析

–on client

–on server

验证码:

  1. 防止暴力破解
  2. 防止机器恶意注册
    验证码的认证流程:

客户端request登陆页面,后台生成验证码:

  • 后台使用算法生成图片,并将图片response给客户端

  • 同时将算法生成的值全局赋值存到session中
    校验验证码:

  • 客户端将认证信息和验证码一同提交

  • 后台对提交的验证码与session里面的进行比较
    客户端重新刷新页面,再次生成新的验证码:

  • 验证码算法中一般包含随机函数,所以每次刷新都会改变

  • 演示

  • 环境:buu中的Pikachu,burp*

图片

随意输入一个验证码尝试,提示错误,随后根据环境输入正确验证码,则会提示用户名或者密码不存在

图片

现在看来其实是不能对图片验证码进行暴力破解(除非你为了这个写一个深度学习,那你属实牛逼)

随后看下页面的源码,这里可以看到验证码的生成是在前端JS脚本里进行的,每次点击下就能生成一个新的验证码

图片

代码如下

这里就不对具体的原理进行剖析,可自行解读

随后对一次登陆请求进行抓包,查看详情

图片

随后发送至repeater,并go

然后写一个随机的验证码提交查看返回信息

图片

提示用户名或者密码不存在,说明其并没有在后台进行验证(这玩意对于懂原理的人没鸟用)

随后按照上一期的暴力破解直接载入字典跑就行了

  • on client常见问题
  • 使用前端JS实现验证码(鸟用)
  • 将验证码在cookie中泄露,容易被获取
  • 将验证码在前端代码中泄露,容易被获取