0x0 为什么要设置验证码?
1.上一个实验里我们用intruder模块实现了多次提交账号密码,为了防止黑客进行多次暴力破解,水军无限制发贴,机器抢票等等影响网站的行为的守门员。
0x1 验证码验证流程
一。登入生成验证码
1.后台算法生成一张图片,图片response给客户端
2.算法生成的值储存进SESSION中
二。校验
1.客户端提交验证码
2.后台对比SESSION与提交的验证码的值
三。重新生成
算法:包含随机函数
0x2 前端层面的验证码绕过
1.用proxy模块抓到包后,我们找到post的记录,并将它发送到repeater模块中
2.任意修改vcode验证码的值,发现后台并不会检验验证码是否正确,提示信息为账号密码错误。
3.那么暴力破解的方法和实验1一样,vcode的值形同虚设。
0x3 后端验证码的绕过
1.重复0x2内的步骤1,2,vcode的值一定需要正确值,但是发现通过repeater模块我们可以重复提交。这就是后台的session值没有及时销毁的原因了。php默认session有效时间为1440s(24min),在这个时间内我们可以重复使用这个session值
2.发送到proxy模块里
和实验一如出一辙,设置runtime后破解成功
3.后台常见出现的问题
1.后台里的验证码不过期,能长期使用
2.验证码逻辑出现问题,导致校验不合格(碰到了会继续补充)
3.验证码太过简单或有规律容易被拆解
4.php内如何让验证码一次一用?
session_unset()
或者session_destroy()
更多推荐
暴力破解实验2 简单的前端后端验证码绕过
发布评论