暴力破解漏洞解析
通过下面这些词来了解一下什么是暴力破解攻击:
连续性尝试+字典+自动化
暴力破解是一种试图通过尝试各种可能的密码或凭证来获取未经授权访问或控制系统或账户的技术。这种技术可以自动化进行,通过使用字典攻击或暴力破解程序。暴力破解在渗透测试中是一种基础、重要的技术手段,以测试系统的弱点和安全性。
渗透测试中字典是什么
字典是一种用于破解或暴力猜测密码的工具,其中包含了各种可能的密码组合,包括简单的数字和字母组合、常用词汇、生日、电话号码等。渗透测试者可以利用字典,将字典中的密码尝试与目标的密码进行匹配,以破解或者获取登录目标的权限。
字典的作用是为渗透测试提供了一种针对密码攻击的有效手段,能够提高渗透测试的效率和成功率。同时,字典还可以用于评估目标系统的安全性,测试目标系统是否能够抵御常见的密码攻击手段。在实际应用中,字典通常是基于统计学和常见密码的分析构建而成,渗透测试者也可以通过自己的经验和知识构建定制化的字典来提高密码攻击的效率。
什么网站可以利用暴力破解
如果一个网站没有对登录接口实施防暴力破解的措施,或者实施了不合理的措施,则称该网站存在暴力破解漏洞。
例:
1.是否要求用户设置了复杂的密码
2.是否每次认证都使用安全的验证码
3.是否对尝试登录的行为进行判断和限制
4.是否在必要的情况下采用了双因素认证
暴力破解漏洞测试流程
1.确认登录接口的脆弱性
确认目标是否存在暴力破解的漏洞
(比如:尝试登录—抓包—观察验证元素和response信息,判断是否存在被暴力破解的可能)
2.对字典进行优化
根据实际的情况对字典进行优化,提高爆破过程的效率。
3.工具自动化操作
配置自动化工具(比如线程,超时时间,重试次数等),进行自动化操作。
暴力破解中的验证码
我们一般用验证码来做什么?
登录暴力破解
防止机器恶意注册
验证码的认证流程
1.客户端request登录页面,后台生成验证码
- 后台使用算法生成图片,后台生成验证码
- 同时将算法生成的值全局赋值存到SESSION中
2.校验验证码
- 客户端将认证信息和验证码一同提交
- 后台对提交的验证码与SESSION里面的进行比较
3.客户端重新刷新页面,再次生成新的验证码
- 验证码算法中一般包含随机函数,所以每次刷新都会改变
验证码可以防止暴力破解,但你的验证码安全吗?
-
不安全的验证码 on client 绕过
1)使用前端js实现验证码
2)将验证码在cookie中泄露,容易被获取
3)验证码在前端代码中泄露,容易被获取
暴力破解的防范措施
1.设计安全的验证码(安全的流程+复杂而可用的图形)
2.对认证错误的提交进行计数并给出限制,比如连续5次密码错误,多少时间内不能登录
3.必要的情况下,使用双因素认证