Burte Force(暴力破解)概述
“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;
…等等。
基于表单的暴力破解
- 设置代理(这里以谷歌浏览器为例)
- 点击右上角的三个点,选择设置、高级、系统、打开您计算机的代理设置
- 在Internet选项里点击 连接、局域网设置、
设置为手动代理,填上127.0.0.1(这是本地IP),端口8080(对应burpsuite的端口),点击确认
打开burpsuite开启拦截,让后在页面填入账号:admin ,密码:随便,然后点击login
burpsuite已抓到post包,右键选择发送给intruder
然后在测试区中点击位置,在右边点击clear清除,然后选中password中的密码(add选中),即是我们要pj的账号密码),攻击类型选择最后一个
- 添加密码字典
验证码绕过(on server)
和之前一样,设置代理,burpsuite拦截请求
发给Repeater(重发器)
来到重发器,点击发送
把响应这边的拖动条拖到最后,可以看到用户名或密码错误,再发送一次同意是账号密码错误,接着我们把验证码修改了发送就可以看到验证码错误了(这这里有点问题显示□)
这说明是验证码无条件不刷新,无条件不刷新是指在某一时间段内,无论登录失败多少次,只要不刷新页面,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解.
接着我们回到代理这里,然后把内容发送测试器,像之前一样,在测试器里面把全部清楚了,再把密码处添加上,攻击类型第四个,把账号密码的文本加载进去,最后攻击。
- 长度唯一确定密码
验证码绕过(on dilent)
基本过程同上(抓包>pj>登录)
token防爆破
token由返回包确定,显然,每次我们登陆,token的值肯定会变化,token值错误无法验证账号密码的正确性,需要我们每一次发送请求包都要拿到上一个返回包的token值放在token包里面
- 输入账号密码,开始抓包
像之前一样,在测试器里面把全部清楚了,再把密码和token处添加上
线程数设为1(只有获取上一个请求返回的taken值才能,做下一次请求,无法并发))
在选项下面的Grep Extract点添加,获得回复,选中token的值复制然后确认
最下面选中总是
- 在有效载荷中选择递归搜索,然后把值放在第一个请求的初始有效负载
- 加载字典后攻击
- 唯一的长度,成功
GitHub Discussions