“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
1.是否要求用户设置复杂的密码; 2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp; 3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等); 4.是否采用了双因素认证; ...等等。 千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!
基于表单的暴力破解
使用admin、123456进行登录抓包
获得信息只有用户名和密码,没有进一步的验证的信息,将抓到的数据发送到intruder模块,清除变量,将username和password设置为要测试变量,并选择cluster bomb(集束炸弹)攻击。
然后payloads,选择第一个变量的有效载荷类型为simple list(列表), 添加一个账号列表,选择payload option中的load
同样,payload set 第二个的有效载荷类型也是simple list,添加爆破列表,完成后直接跑就可以了
找到数据长度不一样的一个个查看。
通过测试发现这几个账号都是可以登录,那么也就是说这个地方可能没有对用户的大小写进行一个判断。
验证码绕过(on server)服务器端
这个呢就增加了一个验证机制,同样的先输入一个admin、123456,和它给的这个验证码去抓一下包。
为了方便查看,发送到repeater模块进行一个测试
可以看到重发后的虽然进行了一个验证码的改变,但是并不影响用户名和密码的操作,说明验证码可以重复使用
发送到intruder模块进行一个爆破,同样的是选用cluster bomb攻击,选择上账号和密码,进入payloads设置账号和密码字典,进行爆破。
发现这几个还是都能进行登录
验证码绕过(on client)客户端
依旧使用抓包攻击去进行一个查看测试,先发送到repeater模块,做一个测试
结果密码错误的回显是用户名和密码不正确,并没有验证码的事情,也就说明,验证码没有一个服务器端验证。
那就直接使用intruder模块去爆破,选择cluster bomb攻击,payloads选择好账号密码,直接爆。
得到的账号和密码去验证就行了。
token放爆破?
原理还是burpsuite抓包,查看,这一关的题目是token防爆破,那就是在token上动手脚了。
repeater去看看
通过发送请求可以看到,每次的token值都会进行了一个改变,那不就说明只要用token值来做一个验证爆破就可以了
首先,将拦截到的包发送到intruder模块,选中密码和token值,攻击模式为pitchfork,payloads的payload type密码默认,token的设置为recursive grep(递归)
options选择grep-extract,添加,然后在弾出的框中找到refetch response,再搜索token值,双击token值,点击OK,同时将token值复制到payloads的payload options下面
options中redirections选择always,然后resource pool中选择线程为1