暴力破解测试
意义:其实现在暴力破解基本不需要验证了,只需要对输入密码进行限制次数就可以解决,但是可以了解破解方法以及工具的使用
注:本博客根据《Web攻防之业务安全实战指南》一书改编而成
1.1 测试原理和方法
暴力破解测试是指针对应用系统用户登录账号与密码进行的穷举测试,针对账号或密码进行逐一比较,直到找出正确的账号与密码。 一般分为以下三种情况: · 在已知账号的情况下,加载密码字典针对密码进行穷举测试; · 在未知账号的情况下,加载账号字典,并结合密码字典进行穷举测试; · 在未知账号和密码的情况下,利用账号字典和密码字典进行穷举测试。
1.2 测试过程
使用手工或工具对系统登录认证的账号及密码进行穷举访问测试,根据系统返回的数 据信息来判别账号及密码是否正确。测试流程如图 1-1 所示。 步骤一:对浏览器进行 HTTP 代理配置,将浏览器访问请求指向 Burp Suite 工具默认的监听端口(这里以火狐浏览器为例)。
- (1)打开火狐浏览器,在页面中单击右上角的“打开菜单”按钮,然后在下拉框中单击“选项”按钮进入火狐浏览器选项页面,如图 1-2 所示。
- (1)在 Burp Suite 页面中选择“Proxy”选项卡,然后再次选择“Intercept”子选项卡,在该选项卡界面中将“Intercept”按钮设置为“Intercept is on”,此时火狐浏览器发送的请求数据会被 Burp Suite 工具截断,如图1.5所示
从图我们可以看到 Proxy 的 Intercept 选项卡中对应有四个选项按钮,下面分别 来讲解一下。
Forward:将当前 Proxy 拦截到的数据包进行转发。
Drop:将当前 Proxy 拦截到的数据包进行丢弃。
Intercept is on:单击之后,将关闭 Burp Suite 的拦截功能。但是所有 HTTP 请求还是 经过 Burp Suite,我们可以在 HTTP history 选项卡中看到。
Action:我们可以进行其他更多的操作,发送到 Intruder 等其他 Burp Suite 模块,以 便进行重复测试或者暴力破解。
- (2)在火狐浏览器中填写要暴力破解的账号信息及任意 密码信息,单击“确定”按钮提交信息,如图1-6所示。
-
(1)在 Intruder 模块中选择 Positions 选项卡,单击“Clear”按钮清除相关默认参数值前后的“§”标记符号,如图1-8所示。
-
(2)用鼠标选中请求数据页面中的 password 参数值(所要进行暴力破解的密码值),并单击“Add §”按钮进行位置标记,如图 1-9 所示。
- (3)选择 Payloads 选项卡,然后单击“Load items form file”,在弹出对话框中选择暴力破解密码文件并单击“打开”按钮,将破解密码列表导入后单击“Start attack”按钮开始暴力破解测试,如图 1-10 所示。
- (4)在暴力破解测试窗口“Intruder attack 1”中可根据 Length 属性值长度的不同来判断暴力破解密码是否成功,也可通过查看 Response 返回信息或者 Status 返回状态的不同来判断破解密码是否成功,如图1-11所示。
- (5)通过 Burp Suite 工具暴力破解成功的密码来尝试系统登录(本系统为书本作者搭建的系统),如图 1-12 所示。
1.3 修复建议
-
(1)增加验证码,登录失败一次,验证码变换一次。
-
(2)配置登录失败次数限制策略,如在同一用户尝试登录的情况下,5 分钟内连续 登录失败超过6 次,则禁止此用户在3小时内登录系统。
-
(3)在条件允许的情况下,增加手机接收短信验证码或邮箱接收邮件验证码,实现 双因素认证的防暴力破解机制。
注:本博客根据《Web攻防之业务安全实战指南》一书改编而成