暴力破解
暴力破解
Sniper
只可选取一个payload
由下图可以看到,在Sniper当第一个kele进行破解时,是在username的位置,当payload全部用完时,其就会移动到password的位置
Battering ram
如下图,此模式可将username和password设置为相同的payload
Pitchfork
如下图,此模式可以设置两个payload
如下图,此模式下,两个payload将一一对应匹配
Clusterbomb
此模式一样可以设置两个payload,唯一区别在于,其两个payload会逐一进行匹配,所以此方法会在一般的暴力破解常用
基于表单的破解
此为最容易进行的暴力破解,在此处如果没有登录限制,则可无限制暴力破解(账号密码都可)
当输入错误的账号时,会提示账号或密码错误,如若存在用户枚举,则可只进行密码的暴力破解
进行抓包处理,并且将抓到的包放入Intruder
根据返回的爆破结果,我们在看到其长度的不同,即可区分出结果
基于服务器的验证码爆破
验证码在服务器中验证常见的问题
- 验证码在服务器中不过期,长时间有效,可以长期使用
- 验证码校验不合格,逻辑出现问题
- 验证码的设计规律过于简单,容易被猜解
我们可以采取抓包的方法来验证验证码是否可以长期使用,抓包发生至Repeater
在上图的基础上将验证码设置为空,显示结果为
如随便输入验证码,结果为
将正确的验证码输入,结果为
修改账号密码,不修改验证码,结果为
因此可以判断,其验证码可以长期使用,下面进行暴力破解即可
同时可以看到服务端将验证码字符串以明文COOKIE的方式给了前端
防范措施:可以在验证码后面添加使其每次使用完毕失效即可
基于客户端的爆破
基于客户端的爆破的问题
- 使用签到js实现验证码(无效验证码)
- 将验证码在cookie中泄露,容易被获取
- 将验证码在前端源代码泄露,容易被获取
查看此页面的源代码发现验证码是在前端使用js生成的
并且是在前端直接调用
因此可推断,验证码在前端js生成,并没有验证作用
在抓包将其发送至Repeater,将验证码修改为一个不存在的,发现并没有去验证,而是返回了一个用户名或密码错误的提示,下面进行暴力破解即可。
暴力破解的防御措施:
- 设计安全的验证码(可以图形化)
- 并认证错误的提交给出计数并进行限制
- 使用双因素认证
注意:Token并不能阻止暴力破解,因为token每次会变,但是可以利用工具去提前获取token的值,进行更改,所以不能彻底的防止暴力破解