运维安全第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;
- 为变量赋值为暴力破解对应的字典;
- 配置完成后开始破解。