暴力破解

一、暴力破解概述

  • 连续性尝试+字典+自动化

二、 暴力破解测试流程

1.确认目标是否存在暴力破解漏洞

  • 抓包验证,查看目标网站对登录接口是否实施了安全措施。

2.优化字典

  • 收集拖库字典;根据实际情况对字典进行优化。一个有效的字典可以大大提高暴力破解的效率。

3.工具自动化

  • 配置线程、超时时间、重试次数等

三、验证码原理

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart” 全自动区分计算机和人类的图灵测试的缩写

认证流程

image.png

四、三个实验实战

实验一、基于表单暴力破解

1.burpsuite配置

1.1配置burpsuite代理

burpsuite配置.png

1.2浏览器配置代理

浏览器代理.png

1.3浏览器安装证书

下载证书.png
安装证书.png

2.抓包分析

  • 打开目标站登陆页面


    image.png

    *分析


    image.png
  • 由上图可以看到没有进行其他方式的验证,只提交了用户名和密码。存在暴力破解漏洞。

3.攻击

3.1 利用intruder模块实现自动化攻击

  • 发送到inteder模块


    发送到intruder模块.png
  • 配置攻击类型,添加变量


    设置攻击类型添加变量.png
  • 设置payload


    image.png

    image.png

    *点击start atack 开始攻击


    image.png
  • 根据返回结果包长度,判断出正确的用户名密码为admin 123456


    image.png

实验二、验证码绕过(on client)暴力破解

1.是否可以绕过

  • 验证码有效。输入错误验证码,提示错误。


    image.png

    *查看网页源代码,判定是前端js对验证码校验


    image.png
  • 工具验证


    image.png

    image.png

    image.png

    image.png

    由上图分析只有前端对验证码做校验,可以绕过前端。

2.攻击

image.png

image.png

image.png

image.png
  • 根据结果显示 用户名密码为 admin 123456

3.总结

  • 使用前端实现js验证码是可以被绕过的
  • 将验证码放在cookie或者前端代码中容易被泄露利用。

实验三、验证码绕过

1.分析

*输完用户名密码和验证码点击登陆后,无反应;结合网页代码分析,没有在前端进行校验,是在后端进行验证


image.png
  • 输入错误验证后,浏览器返回的数据中显示验证码输入错误


    image.png
  • 输入正确验证码后,浏览器返回的数据中显示用户名密码错误


    image.png
  • 继续使用该验证码,浏览器返回的数据中显示用户名密码错误,证明后端验证不过期或者过期时间长,可利用此点进行绕过。


    image.png

2.攻击

  • 结果如下


    image.png

3.总结

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

五、 防暴力破解方法

  • 是否要求用户设置了复杂的密码
  • 是否每次认证都是用安全的验证码
  • 是否对尝试登陆行为进行判断和验证
  • 是否在必要的情况下采用双因素认证等

你可能感兴趣的:(暴力破解)