暴力破解探析
文章目录
简介
暴力破解也被称为枚举测试、穷举法测试,是一种针对密码破译的
方法,即:将密码逐个比较,直到找出真正的密码为止。(弱口令扫描
也属于此类范畴)
测试环境:
pikachu、DVWA
工具:
burpsuit
总体步骤:
第一步:burp抓取数据请求包
第二布:burp批量发送爆破
pikachu演示
1.基于表单爆破
首先任意填写账号密码进行抓包,然后发送给攻击器Intrude进行攻击模式选择及爆破位置变量设置
之后分别设置两个变量的payload字典,点击“Start attack”。
对比爆破的服务器响应包的Length长度,可以准确找出所需的账号密码。
2.基于客户端的验证码爆破
可以看出,验证码是基于客户端验证的,我们可以进行如下测验:
2.1 修改前端代码取消验证码验证
右键查看源代码,找到createCode()函数部分,
刷新页面可以看到已经不会对验证码进行校验
2.2 利用正确验证码爆破
此方法和基于表单的爆破一样,在填写正确验证码的情况下进行对账号密码的爆破。
2.3 复写validate函数
在源码中存在validate()校验,可以进行true重载
validate=()=>ture;
- 1
在控制台执行之后,在登录页面无关于验证码的校验报错
之后即可对zhang’haozhanghao密码进行burp爆破,同上。
3.基于服务端验证码的爆破
分析:
基于服务端的验证码请求是随数据请求每次都刷新的,如下图所示:
注:Fiter规则勾选image即可看到验证码的更新请求
然而通过验证码的drop丢弃可以看到其验证码存在时效性问题,既可以通过上一数据请求的验证码进行下一次的登录请求,如下图:
操作:
利用其验证码时效缺陷,抓包对其验证码drop,找到对应登录请求包发送到攻击器对账号密码进行变量爆破
攻击分析和表单爆破方法一致。
4.基于token爆破
分析:
通过对数据包token的分析,可以知道token在发送当前数据包的上一个数据包里。因此需要至少两个包才能完成一次对token的爆破。
首先,刷新页面请求,可以看到起响应包里存在token值
接下来登录请求中可以看到其token的沿用
那么就需要设置一个宏操作来实现数据请求前这个token的获取,实现后续的爆破
操作:
1.打开菜单栏projec options——Session,对Macros进行宏定义,
给第一个包添加宏
2.接下来设置运行规则
添加具体动作参数“token”
添加爆破攻击的页面
3.爆破登录请求包
将第二个请求包发送给攻击器,设置用户名和密码为变量,设置攻击线程数为1。
注:线程数设为1是为了保持在请求中的响应顺序一致,保证token的时序。
点击攻击,即可爆破出用户名和密码
DVWA演示
对dvwa主页爆破
此页面也是基于token的验证
1.宏定义与规则配置
首先抓取主页的加载包
其次抓取一个尝试登录的数据包
其token进行了沿用,接下来进行一个宏定义
添加规则
添加规则内需要更新的参数"token"
设置爆破的url路径
2.实施攻击
将提交的登录包发送给攻击器,配置爆破的变量
挂载字典并设置线程数1
因为login.php和index.php爆破响应的字段可能会一致,我们不好利用它的字段长度去快速找出相应的用户名密码,所以需要进行重定向的跟踪。
接下来直接进行爆破攻击,得出用户名【admin】、密码【password】