Burte Force(暴力破解)概述
暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;(ont time password)
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;
可以比较容易爆破的情况:
①已知用户名
②不是动态验证码或者是长时效验证码
③提示用户名不存在。要是提示用户或者密码不存在就很难爆破了,需要两个参数一起进行爆破。(用户或者密码不存在)
bp的爆破模式
Attack type:
Sniper(狙击手模式):一次只对一个地方(参数)进行爆破。
Battering ram(攻城锤模式):对所有地方(参数)只用同一个字典进行爆破。
Pitchfork(干草叉模式):对多个地方(参数)同时爆破,每个地方使用的字典不同。
Cluster boom(集束炸弹模式):进行排列组合。一次两个地方进行爆破
这个地方的1就是代表着第一个爆破点,2就是第二个爆破点
Payload type:
Simple list:简单的列表。
Runtime file:指定文档。
Custom iterator:迭代器。position1+position2+position3,进行排列组合,但前后顺序不会变。
Character substitution:字符替换。原始的payload跑完后开始替换。
Case modification:大小写修改。
Recursive grep:递归过滤。是从上一次的响应结果中,取得部分特定内容作为下次请求的Payload。
Illegal Unicode:非法的 unicode 编码。
Character blocks:字符块。插入重复的字符或字符串。
Number:数字。
Dates:日期。
Brute forcer:无限猴子定理。所有字符排列组合。
Null payloads:空负载。
Character frobber:字符有序重组。会按照顺序去递增每个字符的一个ASCII。
Bit flipper:bit翻转。对预设的Payload原始值,按照比特位,依次进行修改。
Username generator:名字生成。
ECB block shuffler:Electronic codebook,ECB。加密块洗牌。
Extension-generated:扩展模块。
Copy other payload:复制其他的payload。
字典
字典:
https://github.com/TheKingOfDuck/fuzzDicts
https://github.com/k8gege/PasswordDic
密码工具:
https://ctf.bugku.com/tools.html
https://www.bugku.com/mima/
https://github.com/crunchsec/crunch
https://github.com/jaalto/external-sf--crunch-wordlist
pikachu靶场
基于表单的暴力破解:
账号:admin 密码:123456
账号:test 密码:test
验证码绕过(on client):
验证码错误的时候,没有抓到包;验证码正确的时候i,可以抓到包。说明这个是在前端进行验证,只要绕过前端,后端将不再对验证码进行校验。
直接抓包进行爆破就可以了
验证码绕过(on server):
同理也是一样,后端验证码使用没有期限,只有当前端发送请求时才刷新验证码,那我们可以不发送刷新验证码的请求,则我们可以使用同一个验证码,进行爆破。
先发送到reperter模块,然后修改密码一直发送可以看到验证码是不会发生改变的,就可以用这个验证码进行爆破
token防爆破?:
利用 Recursive grep 的payload类型,可以捕获上一次响应中返回的token,并将token加入现在的包中进行使用。
线程数需要设置为 1。
线程数多,则会不知道识别的返回 tocken 是那个一payload的返回,造成失效。
实战爆破
一种网站是有提示用户名的,提示你用户名不存在,可以先爆破用户名,在破解免密
http://www.czxlzs.com/admin/Login.aspx?action=login
通过bp进行爆破,爆破出三个用户名
靶场网址
http://rsc.njucm.edu.cn/manage/login.aspx
#长时效验证码
http://www.miaolaotai.com/admin/login.php
#验证码一直变换,比较难爆破