暴力破解

暴力破解

  • 什么是暴力破解
  • 利用方法
  • 进阶
  • 防御

什么是暴力破解

通过利用大量猜测和穷举的方式来尝试获取用户口令的攻击方式。就是猜口令咯,攻击者一直枚举进行请求,通过对比数据包的长度可以很好的判断是否爆破成功,因为爆破成功和失败的长度是不一样的,所以可以很好的判断是否爆破成功。

利用方法




    
    Login


    

Username:root ,Password:root

Username: Password:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
    request.setCharacterEncoding("utf-8");
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    if("root".equals(username)&&"root".equals(password)){
        response.sendRedirect("success.html");
    }else{
        response.sendRedirect("Fail.html");
     }
%>

如上代码进行说明,一个简单的表单提交到后台,判断账号,密码都为root则登陆成功。

  1. 模拟登陆
    暴力破解_第1张图片
  2. burpsuite抓包使用Intruder模块进行爆破
    数据包:
    暴力破解_第2张图片
    设置爆破账户名的字典
    暴力破解_第3张图片
    设置爆破密码的字典
    暴力破解_第4张图片
    点击进行爆破
    暴力破解_第5张图片
    如图,按照长度排序,第一个则是爆破成功的结果,因为登陆成功和登陆失败的长度是不同的,大多数是失败的,与众不同的那个就是成功的啦。

进阶

  • 爆破的字典选什么是一个技巧,可以使用top100等账号密码进行爆破
  • 通过社工获取目标信息,再使用字典生成器生成字典进行爆破
  • 如果爆破目标有验证码可以使用pkav或者其他识别验证码的接口爆破

防御

  • 用户层面就是要避免使用弱口令,弱口令当然不止使用admin,root这类的,还有姓名拼音,键盘连续字符等
  • 服务方进行对多次登陆失败的账户可以锁ip
  • 使用短信验证码,语言验证码等验证方式,为了用户体验好,可以设置一个阀值,当超过这个阀值再进行验证
  • 使用复杂点的验证码,增加攻击者攻击成本

你可能感兴趣的:(web安全总结)