运维安全第2节—暴力破解之基于表单的暴力破解实验

  • 2019 年 10 月 8 日
  • 笔记

暴力破解攻击&暴力破解漏洞概述

暴力破解关键词:连续性尝试 + 字典 + 自动化

如果一个网站没有对登陆接口实施防暴力破解的措施,或者实施了不合理的措施,则称该网站存在暴力破解漏洞。常见类型:

  • 是否要求用户使用复杂密码;
  • 是否每次验证都使用安全验证码;
  • 是否对尝试登陆行为做监控和限制;
  • 是否在必要的情况采用双因素认证;
  • … …

暴力破解流程

  • 确认登陆接口的脆弱性:尝试登陆—抓包—观察验证元素和response信息,判断是否存在暴力破解的可能
  • 对字典进行优化:根据实际情况对字典进行优化,提高爆破过程中的效率
  • 工具自动化操作:配置自动化工具(比如线程、超时时间、重试次数等),进行自动化操作

暴力破解测试流程—字典优化技巧

  • 搞清楚密码的限制策略;
  • 根据提示信息优化。

基于表单的暴力破解实验

实验环境:Burp suite & pikachu

实验目标:pikachu-暴力破解-基于表单的暴力破解

测试工具:burpsuite free edition-intruder

burpsuite-intruder模块介绍

intruder模块可以通过对http request的数据包以便利的方式自定义参数,然后根据对应策略进行自动化的重放。常用于自动化猜测/暴力破解过程中。

  • target选项卡:设置攻击目标,可以通过proxy发送;
  • positions选项卡:指定需要暴力破解的参数并设置成变量,同事选择攻击模式;
    • Sniper(狙击手):设置一个payload,先讲第一个变量使用字典进行测试,然后再将第二个变量使用字典进行测试;
    • Battering ram(冲撞车):设置一个payload,所有的变量一起用字典内容被替换,然后一起尝试;
    • Ptichfork(草叉型):每个变量设置一个payload,分别使用对应的字典对变量进行同时替换;
    • Cluster bomb(焦束炸弹):需要为每个变量设置一个payload,分别使用字典内容组合对变量进行替换;

开始试验

配置burpsuite

直接创建临时项目:

使用默认设置:

页面展示:

关闭 Intercept :如果不关闭,则会拦截浏览器所有经burpsuite代理(proxy)的请求

配置浏览器

使用Firefox浏览器,配置代理:(Tips:在配置代理之前请先安装ca证书,不然https请求会存在error!!!安装CA证书)

配置完成后随便访问一个网页,burpsuite会将访问记录下来:

如果开启intercept,请求会被拦截,需要手动去点击"Foreword"才能发送出去。

Tips:演示之前还需要做一个操作,允许Firefox浏览器抓取localhost的数据包!!!(很重要)

  • 在Firefox浏览器中输入 about:config
  • 搜索 network.proxy.allow_hijacking_localhost ——允许代理劫持本地主机
  • 双击值,改为true 即可!

接下来已pikachu平台来做演示。

  • 通过Proxy:HTTP history获取要进行攻击的请求方式
    • 可以在这里直接讲请求方式发送到intruder
  • 查看intruder并进行配置
  • 对请求进行分析,判断是否满足暴力破解的要求
  • 如果能进行爆破,用变量替换请求中的关键字段(见上图);
    • 右侧'add'表示添加一个变量(选择要设置变量的字段,点击add即可)
    • 如果是从proxy history添加过来的,自动会设定变量,根据需要自行取舍
  • 根据需要选择attach type;
  • 为变量赋值为暴力破解对应的字典;
  • 配置完成后开始破解。

Burpsuite使用指南

参见:burpsuite实战指南