验证码漏洞
验证码是什么?
**验证码(CAPTCHA)**是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。
同时验证码还可以用于区分用户身份(手机验证码、邮箱验证码等)
验证码的作用?
可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。
这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
验证码五花八门,有中文字,纯数字,点击字符、数学运算、滑动方块……
验证码机制原理
→客户端发起请求,
→服务端响应并创建一个新的SessionID同时生成随机验证码,
→服务端将验证码和SessionID一并返回给客户端,
→客户端提交验证码连同SessionID给服务端,
→服务端验证验证码同时销毁当前会话,返回给客户端结果。
验证码绕过原理
1、识别并执行
2、逻辑产生问题
验证码漏洞分类
1、前端验证码[JS与HTML]
并没有后端验证码,直接抓包然后进行跑数据包,没有验证码的阻碍
2、未设有效验
乱输验证码也能成功
3、验证码可以重复使用
4、验证码空值绕过
5、验证码干扰过低,轻松用脚本识别
6、验证码可控制
可以传参绕过验证码
7、验证码有规律
比如时间戳后六位
8、万能验证码
9、cookie中的验证码
10、图片验证码类型太少
密码找回漏洞
密码找回漏洞分类
1、验证码发送后前端返回
2、验证码无次数爆破
3、验证码可控
可以通过传参来修改验证码
4、直接修改密码页面
5、越权漏洞⇒自己验证码通过改包然后修改他们的密码