暴力破解
Burte Force(暴力破解)概述
“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;
基于表单的暴力破解
当无明显提示时的方法,基于表单可以说是最无奈的一种方法。表单内容可以通过用户名要求或密码要求进行限定范围,减少不必要的时间花费。
使用burp抓取登录信息:
查看登录请求:
查看响应请求:
可发现只能通过表单进行暴力破解(其实还可以试试SQL注入、XSS等)。
将请求信息右键发到Intruder攻击模块,添加playload和选择攻击类型:
攻击类型选择Pitchfork
对payload设置,选择payload类型和添加payload列表(burp中列表较少,可以从本地添加加载):
payload1:
payload2:
设置资源池(自己一般设置100-500):
提取响应中响应反馈并显示在攻击列表中:
通过响应长度等找到用户名和密码:
验证码绕过(on server)
burp打开拦截:
填写用户名、密码和验证码,用burp抓取请求响应:
查看抓取的请求和响应:
请求(发现多了验证码的数据):
将数据发到重放器、发送查看响应:
再次发送,发现验证码依旧有效。
将数据发到攻击模块,按照表单爆破即可。
验证码绕过(on client)
右键查看网页源码,找到定义验证码部分:
发现只是在页面判断验证码是否正确及存在
直接用burp抓取,去掉验证码部分发送:
响应没有提示验证码错误,成功绕过,后续正常爆破即可。
Token防爆破
burp抓取请求中带有token值:
查看响应,找到有返回的token:
发送攻击模块,添加payload类型选pitchfork(token值用一次换一次):
在设置中添加提取token值:
密码payload照旧,token选择递归提取(Refetch response)类型,首次payload填写响应包中token:
线程设为1:
设置中重定向选总是:
攻击,找到成功破解位置,获取密码:
设置中重定向选总是:
攻击,找到成功破解位置,获取密码: