实验介绍
1. 验证码存在的漏洞:
1). 验证码在后台不过期,导致可以长期被使用;
2). 验证码校验不严格,逻辑出现问题;
3). 验证码设计的太过简单和有规律,容易被猜解
2. 暴力破解
使用攻击者的用户名和密码字典,一一去枚举,即每一个用户名都会对应所有密码去尝试能否登录。理论上说,只要字典足够庞大,枚举是能够成功的。
3. 验证过程
客户端request登陆页面,后台生成验证码:
1)后台使用算法生成图片,并将图片response给客户端
2)同时将算法生成的值全局赋值存到SESSION中
校验验证码:
1)客户端将认证信息和验证码─同提交
2)台对提交的验证码与SESSION里面的进行比较
客户端重新刷新页面,再次生成新的验证码:
1)验证码算法中—般包含随机函数,所以每次刷新都会改变
2)验证码会过期
实验目的
1. 掌握暴力破解的原理及过程
2. 熟悉验证码的工作机制以及漏洞的利用方式
实验步骤
1. 打开实验环境,尝试进行登录,确定验证码的缺陷
2. 打开burp进行抓包拦截,针对验证码参数进行暴力破解
实验开始
一、burp抓包
二、设置爆破类型和变量
三、设置payload
四、爆破结果
防御方式
1. 设置验证码的失效时间,建议为180秒:
2. 设计安全的验证码(安全的流程+复杂而又可用的图形);
3. 对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时;
4. 必要的情况下,使用双因素认证。