暴力破解


暴力破解

Sniper

 只可选取一个payload

由下图可以看到,在Sniper当第一个kele进行破解时,是在username的位置,当payload全部用完时,其就会移动到password的位置

Battering ram

如下图,此模式可将username和password设置为相同的payload

Pitchfork

如下图,此模式可以设置两个payload

 

如下图,此模式下,两个payload将一一对应匹配

Clusterbomb

此模式一样可以设置两个payload,唯一区别在于,其两个payload会逐一进行匹配,所以此方法会在一般的暴力破解常用

基于表单的破解

此为最容易进行的暴力破解,在此处如果没有登录限制,则可无限制暴力破解(账号密码都可)

当输入错误的账号时,会提示账号或密码错误,如若存在用户枚举,则可只进行密码的暴力破解

进行抓包处理,并且将抓到的包放入Intruder

根据返回的爆破结果,我们在看到其长度的不同,即可区分出结果

基于服务器的验证码爆破

验证码在服务器中验证常见的问题

  1. 验证码在服务器中不过期,长时间有效,可以长期使用
  2. 验证码校验不合格,逻辑出现问题
  3. 验证码的设计规律过于简单,容易被猜解

我们可以采取抓包的方法来验证验证码是否可以长期使用,抓包发生至Repeater

在上图的基础上将验证码设置为空,显示结果为

如随便输入验证码,结果为

将正确的验证码输入,结果为

修改账号密码,不修改验证码,结果为

因此可以判断,其验证码可以长期使用,下面进行暴力破解即可

同时可以看到服务端将验证码字符串以明文COOKIE的方式给了前端

防范措施:可以在验证码后面添加使其每次使用完毕失效即可

基于客户端的爆破

基于客户端的爆破的问题

  1. 使用签到js实现验证码(无效验证码)
  2. 将验证码在cookie中泄露,容易被获取
  3. 将验证码在前端源代码泄露,容易被获取

查看此页面的源代码发现验证码是在前端使用js生成的

并且是在前端直接调用

因此可推断,验证码在前端js生成,并没有验证作用

在抓包将其发送至Repeater,将验证码修改为一个不存在的,发现并没有去验证,而是返回了一个用户名或密码错误的提示,下面进行暴力破解即可。

暴力破解的防御措施:

  1. 设计安全的验证码(可以图形化)
  2. 并认证错误的提交给出计数并进行限制
  3. 使用双因素认证

注意:Token并不能阻止暴力破解,因为token每次会变,但是可以利用工具去提前获取token的值,进行更改,所以不能彻底的防止暴力破解