暴力破解Burte Force

形成原因:网站没有对登录接口实施防暴力破解的措施,或者实施了不合理的措施,如不安全的验证码,或者使用token防御暴力破解

测试方法:1.抓取登录数据包,观察验证元素和response响应信息,判断
2.字典优化
如果是管理后台,可以尝试管理员为admin/administrator/root结合密码字典进行爆破

用的靶机:pikachu

Bp intruder模块

之前只用过sniper-_-|| 因为基本上都知道用户名或者只有一个变量
不过这次不知道用户名
在这里插入图片描述

单字典:Sniper、Battering ram
Sniper:如果选择多个变量,此字典会先爆破一个变量,再爆破第二个变量(一个一个来)

Battering ram:无论选择过个变量。此字典都会同时爆破(多个一起上)

多字典:Pitchfork、Cluster bomb
Pitchfork:此字典同时进行(同时出) Cluster
bomb:爆破建议选择此字典(一对多。我出1,你逐个出完后,我再出2,你再逐个出完后,我才能再出下一个)
比较一下:
pitchfork
在这里插入图片描述
Cluster bomb:
在这里插入图片描述
所以一般爆破用户名和密码的话还是用第二种

验证码绕过

客户端验证码绕过:
客户端验证码就是前端采用js生成再使用js进行验证的一种方式,这样的验证码和服务器没有关系
直接抓包attack即可~~

不安全的服务器端验证码绕过:就是每次没有更新验证码
如何判断:通过repeater模块,更改一下用户名或者密码,看response有没有改变,如果和原来一样,说明用原来的验证码也可以,所以可以直接爆破

绕过token防御暴力破解

关于token:

Token:在计算机身份认证中是令牌(临时)的意思,类似于 MD5 加密之后的长字符串

特点:1.随机性,不可预测 2.具有有限期 3.唯一

作用:1.防止重复提交 2.防止CSRF(跨站请求伪造)攻击

Token是服务器生成的一串字符串,以作客户端进行请求的一个令牌。

当第一次登录后,服务器生成一个Token并返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

目的就是为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库。

它的应用:

1.当用户首次登录成功之后,服务器就会生成一个token值(UUID);

2.服务器会保存这个值(保存在数据库中或者缓存中),再将这个token值返回给客户端;

3.客户端拿到token值之后,使用sp进行保存。

4.以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个token值附带到参数中发送给服务器;

5.服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值做比较。如果两个token值相同,说明用户登录成功过,当前用户处于登录状态,如果没有这个token值,没有登录成功。

思路:
登录的时候客户端token要和服务端token进行比较是否正确。
如果我们想要爆破的话,在每次请求前要把上一次请求的响应包获取到,把其中的token值取出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
token采用递归payload,把上次请求的token值作为本次请求的token值进行发送
在这里插入图片描述
进入options选项,打钩
表示从响应中提取选项
在这里插入图片描述
fetch response,在响应包中选中token值
在这里插入图片描述
需要提交token,不能使用多线程,把线程数改为1
然后开始跑即可~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章