一、暴力破解概述
- 连续性尝试+字典+自动化
二、 暴力破解测试流程
1.确认目标是否存在暴力破解漏洞
- 抓包验证,查看目标网站对登录接口是否实施了安全措施。
2.优化字典
- 收集拖库字典;根据实际情况对字典进行优化。一个有效的字典可以大大提高暴力破解的效率。
3.工具自动化
- 配置线程、超时时间、重试次数等
三、验证码原理
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart” 全自动区分计算机和人类的图灵测试的缩写
认证流程
四、三个实验实战
实验一、基于表单暴力破解
1.burpsuite配置
1.1配置burpsuite代理
1.2浏览器配置代理
1.3浏览器安装证书
2.抓包分析
-
打开目标站登陆页面
*分析
- 由上图可以看到没有进行其他方式的验证,只提交了用户名和密码。存在暴力破解漏洞。
3.攻击
3.1 利用intruder模块实现自动化攻击
-
发送到inteder模块
-
配置攻击类型,添加变量
-
设置payload
*点击start atack 开始攻击
-
根据返回结果包长度,判断出正确的用户名密码为admin 123456
实验二、验证码绕过(on client)暴力破解
1.是否可以绕过
-
验证码有效。输入错误验证码,提示错误。
*查看网页源代码,判定是前端js对验证码校验
-
工具验证
由上图分析只有前端对验证码做校验,可以绕过前端。
2.攻击
- 根据结果显示 用户名密码为 admin 123456
3.总结
- 使用前端实现js验证码是可以被绕过的
- 将验证码放在cookie或者前端代码中容易被泄露利用。
实验三、验证码绕过
1.分析
*输完用户名密码和验证码点击登陆后,无反应;结合网页代码分析,没有在前端进行校验,是在后端进行验证
-
输入错误验证后,浏览器返回的数据中显示验证码输入错误
-
输入正确验证码后,浏览器返回的数据中显示用户名密码错误
-
继续使用该验证码,浏览器返回的数据中显示用户名密码错误,证明后端验证不过期或者过期时间长,可利用此点进行绕过。
2.攻击
-
结果如下
3.总结
- 验证码在后台不过期,导致可以长期被使用
- 验证码校验不严格,导致逻辑出现问题
- 验证码设计的太过简单和有规律,容易被猜解
五、 防暴力破解方法
- 是否要求用户设置了复杂的密码
- 是否每次认证都是用安全的验证码
- 是否对尝试登陆行为进行判断和验证
- 是否在必要的情况下采用双因素认证等