《目录》
验证码的作用
验证码根据用途主要分类俩大类:
- 图灵测试(区分人和机器,在反反爬虫中应用广泛)
- 证明身份(比如您登录微信,支付宝,支持短信验证码登录)
大多数网站都会设置验证码,以避免使用计算机枚举密码,窃取用户信息。
对于有一定视觉障碍的网友,可以采用语音验证码;不过,语音验证码里要加入随机的噪音,避免语音识别能识别出来。
验证码五花八门,有中文字,纯数字,点击字符、数学运算……
验证码绕过的常见姿势(图灵测试类)
验证码绕过的分为俩类:脚本识别、逻辑层面。
脚本识别
使用 python 进行图像识别。
逻辑层面
一共九种情况,第三、四种最常见:
- 设置了验证码并不是完全可靠,在很多情况存在验证码绕过的情况(举例是在登录处)
一、前端验证验证码,并没有后端验证。直接抓包然后进行跑数据包,反正有没有验证码的阻碍。
二、验证码设置了但是并没有效验,乱输验证码也能够成功的登录(估计老板没给开发工资吧)。
三、验证码可以重复使用,比如现在的验证码1111,而后虽然您登录失败后验证码会变,但是您输入1111他却判定验证码正确。
@http://www.anquan.us/static/bugs/wooyun-2016-0169672.html
四、.验证码空值绕过,比如,我们现在抓一个包,发现登录参数是user=admin&password=admin&yzm=4123 (明文)。 yzm验证码参数,但是我们如果去掉yzm的传参我们就可以绕过验证码机制,直接传参user=admin&password=admin,验证码就失效了。
五、验证码可控制,比如他的验证码包含在URL里面,是一个URL传参,我们可以把URL设置定为 1234 ,那么验证码就是 1234。
六、验证码有规则,比如是时间戳的后6位,可能使用的随机数库函数,**那个随机数库函数即可。
@时间戳:https://tool.lu/timestamp
@随机数:https://blog.csdn.net/qq_41739364/article/details/102472528
七、有万能验证码,验证码无论是什么,只要输入 000000 就能直接绕过。
八、验证码有的时候会藏在cookie里面,分析一下是不是存在验证码的参数。
@奇妙的漏洞:http://www.anquan.us/static/bugs/wooyun-2015-0150406.html