漏洞概述
暴力破解攻击,又叫字典攻击,是指攻击者系统地组合了所有可能性尝试破解用户的账户名,密码等敏感信息,通常使用自动化脚本或者工具进行暴力破解工具
漏洞产生的主要原因是
2.没有使用安全验证码
3.没有对用户的登录进行行为限制,如连续5次输入错误后锁定账户一段时间
4.没有使用双因素认证,例如手机验证码,双重密码等
漏洞利用
暴力破解首先对爆破点进行分析,主要分析被爆破对象的数据特点,例如,很多系统默认密码是由身份证号的1217位组成,则需要分析身份证号1217位特点,再使用密码生成工具或者编写脚本生成精准的爆破字典,然后再运用爆破工具或脚本进行精准地爆破攻击
下面基于pikachu平台,演示几个完整的爆破攻击案例
基于表单的爆破破解
1.同时爆破username和password
根据已知用户名和密码,构造用户名和密码爆破字典
任意输入用户名和密码,用Bp拦截请求数据包
将数据包发送到Intruder模块,Intruder模块以§标识爆破对象数据,默认全部标识
点击clear,然后分别选中username和password数据对象,再点击添加,将username和password设为爆破对象,将攻击类型设为cluseter bomb
Attack type说明
1.Sniper类型
特点:一个字典,两个参数,先匹配第一项,再匹配第二项
2.battering ram类型
特点:一个字典,两个参数,用户名和密码相同
3.pitchfork
特点:两个字典,两个参数,同行匹配,以字典短的为准
4.cluster bomb类型
特点:两个字典,两个参数,交叉匹配,cluster bomb是最常见的爆破方法,也是爆破出结果可能性最大的方式
分别设置payload set1,2,导入字典,开始攻击
可以看到第九条攻击数据返回的数据包长度与其它攻击数据返回的数据包不同,可知用户名为admin,密码为123456,登陆成功
基于验证码绕过(on client)
如果前端验证是通过js脚本进行验证的,可以直接输入正确的验证码绕过第一次验证,也可以删除验证的js代码,后续可以正常爆破
基于验证码绕过(on sever)
username和password中输入任意字符返回“username or password is not exists”可知服务器未设置验证码失效或次数限制,因此直接可以进行爆破攻击,爆破步骤同上
基于token验证绕过
token是客户端成功登录后,服务器生成的一个字符串,服务器将字符串返回给客户端,作为客户端请求的一个令牌,以后客户端只需携带token请求数据即可。token的目的是为了减轻服务器压力,渐少频繁查询数据库,同时也避免频繁传递用户名和密码造成敏感信息泄露
pikachu基于toen验证绕过
选择Grep_extract模块,点击add
选择name为token的标签,复制token值
导入密码字典,payload type设为recursive grepn,并设置initial payload for first request为token值
开始攻击
ctf实战演练
Buu CTF中BUU BRUTE 1提供了暴力破解漏洞利用的靶场
盲猜用户名admin,用bp拦截爆破
由于是四位整数,所以最小值为0,最大值为9999,设置递增步长为1,以探测每一个从0到9999的数字;由于密码为4位,所以对应不足四位的,需要以0补齐四位数。设置Min integer digits和Max integer digits的长度为4,设置小数点位数Min(Max) fraction digits为0
漏洞防御
1.用户要求避免使用弱口令,服务器端可以限制用户密码的复杂度
2.设置登录阈值,一旦登陆超过设置的阈值,则锁定账号
3.登陆时使用安全验证码进行验证,防止自动化脚本进行暴力破解
4.登录出现异常情况时,使用短信验证码等私密信息进行登陆验证
版权归原作者 哈啾813 所有, 如有侵权,请联系我们删除。