目录
0X00 介绍
验证码(CAPTCHA)作为人机区分的手段,在计算机安全领域发挥着不可小觑的作用。缺少验证码,攻击者可通过暴力破解的方式非法接管用户账户,或对网站进行任意用户注册等。设置验证码就是为了防止自动化攻击,但是如果没有设计好的话就形同虚设,所以了解验证码的原理及产生漏洞的原因有助于更加全方位的提高网站的安全指数。
验证码的机制原理:
Step1:客户端发起请求。
Step2:服务端响应并创建一个新的SessionID同时生成随机验证码。
Step3:将验证码和SessionID一并返回给客户端。
Step4:客户端提交验证码连同SessionID给服务端。
Step5:服务端验证验证码同时销毁当前会话,返回给客户端结果。
0X01 验证码分类
1.1 图片验证码
目前最常见的验证方式,通过在图片上随机产生数字、英文字母、汉字或者问题,一般有四位或者六位验证码字符。通过添加干扰线,添加噪点以及增加字符的粘连程度和旋转角度来增加机器识别的难度。但是这种传统的验证码随着OCR技术的发展,能够轻易的被破解。
1.2 手机短信验证码
通过发送验证码到用户手机进行验证是否为本人操作。大型网站尤其是购物网站,都提供有手机短信验证码功能,可以比较准确和安全地保证购物的安全性,验证用户的正确性,是最有效的验证码系统。某些验证码接入商提供手机短信验证码服务,各网站通过接口发送请求到接入商的服务器,服务器发送随机数字或字母到手机中,由接入商的服务器统一做验证码的验证。
1.3 行为式验证码
是通过用户的某种操作行为来完成验证。例如:拖动式验证码、点触式验证码和旋转式验证等。
拖动式验证码:类似于手机的滑动解锁,根据提示用鼠标将滑块拖动到指定的位置完成验证。
点触式验证码:同样根据文字提示,点击图片中与文字描述相符的内容完成验证。