暴力破解和验证码安全
暴力破解注意事项
1、破解前一定要有一个有效的字典(Top100 Top2000 csdn QQ 163邮箱等密码)
2、判断用户是否设置了复杂密码
- 前端正常注册,看密码设置是否有复杂度限制
3、网站是否存在验证码
- 如果存在验证码,看验证码有效性,是一次性还是可以无限制使用
4、尝试登录的行为是否有限制
- 无限制才能方便破解
5、网站是否双因素认证
- 是否存在token值 验证码等
登陆页面可能产生哪些漏洞
SQL注入点及万能密码登录
不安全的用户提示,一般提示用户名不存在或者密码及验证码存错
查看登陆页面源代码,是否存在敏感信息泄露
不安全的验证码
- 验证码一次性使用
- 验证码显示要有干扰因素
在注册账号的时候是否存在不安全的提示
-
用户名已存在
- 间接获取用户名
不安全的密码,在注册账号的时候,密码没有限制复杂度
在暴力破解的时候未限制ip,锁定用户
一个账户可以在多地登录,没有安全提示
账号登陆后,应具备超时功能
任意无限制注册账号
OA、邮件、默认账号等相关系统,在不是自己注册的情况下,应该在登录之后强制要求修改密码,避免使用默认密码
逻辑漏洞、任意密码重置
越权漏洞、纵向、横向越权
数据包含有敏感信息泄露、如cookie
不安全的数据传输,密码为明文,未使用https证书
- 手机号、身份证号、邮箱等脱敏用*代替
暴力破解分类
C/S
- Bruter、hydra等
B/S
-
基于表单的暴力破解
-
基于验证码的暴力破解
- on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证码在前端源代码中泄露
- on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解
- 弱验证码识别攻击
-
基于token的暴力破解
- 由于token值输出在前端源代码中,容易被获取,因此也就失去了防暴力破解的意义,一般token在防止CSRF上会有比较好的功效