验证码机制之验证码自动识别
介绍
- 当验证码设计不存在逻辑层面的问题时,就要涉及到与验证码机制本身的正面对抗,也就是验证码识别技术这里的验证码主要是指图片验证码。
- 验证码自动识别就是指通过自动化的技术对图片验证码中的字符或公式等内容进行还原,从而突破验证码的安全限制。
危害
- 突破验证码的安全限制,使验证码功能失效
原理
- 一般对于图片验证码的识别流程为:图像二值化处理→去干扰→字符分割→字符识别
- 图像二值化就是将图像上像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。
- 为了防止验证码被自动识别,通常会加入一些点、线、色彩之类的方式进行图像干扰,如下所示
- 所以为了达到良好的识别效果,需要对图像进行去干扰处理。
- 宇符分割主要包括从验证码图像中分割出字符区域以及把字符区域划分成单个字符。
- 宇符识别就是把处理后的图片还原回字符文本的过程。
测试
案例
通过验证码自动识别漏洞实现暴力破解登录密码。
测试方法
1、获取验证码链接
2、将链接载入验证码识别工具进行验证码识别,配置相关工具
3、如成功破解用户帐户,则证明验证码识别有效。
测试过程
第一步 抓取登录处,图片验证码的数据包
第二步 密码字段和验证码添加变量
第三步 设置图片验证码的地址和范围
第三步 设置重返选项
第四步 导入密码字典
第五步 点击启动,进行测试
第六步 查看数据包的返回值
防御方案
1、增加背景元素的干扰。如背景色、背景字母等
2、字符的字体进行扭曲、粘连
3、使用公式、逻辑验证方法等作为验证码。如四则运算法、问答题等
4、图形验证码和使用者相关,比如选择联系人头像,选择购买过的物品等作为验证码。
5、对单位时间內提交请求失败的次数进行限制
摘抄
我想起自己在过去人生旅途中失却的许多东西——蹉跎的岁月,
死去或离去的人们,无可追回的懊悔。
–村上春树
验证码机制之验证码自动识别相关推荐
- 验证码机制之验证码暴力破解
验证码暴力破解介绍 通常在网站的用户注册.密码找回等页面会设计有手机或邮箱验证码进行验证. 主要为了贯彻落实上网实名制以及保障用户帐户的安全性. 当这些验证码具有一定的规律性,并且没有做好对应的防护措 ...
- 验证码机制之验证码重复使用
文章目录 介绍 漏洞原理 测试案例 防御方案 摘抄 介绍 通常在网站的注册.登录.留言板以及评论区等页面会设计有验证码. 如果设计不合理,将会导致验证码在验证成功一次之后,下次使用的时候就不再刷新也就 ...
- 修改Emlog验证码机制,有效防止恶意识别/解决恶意评论灌水
Emlog被恶意评论灌水解决方法,关于Emlog验证码机制问题,用emlog程序都知道,它已经不存在更新了,所以emlog评论验证码代码年久失修了,可以无视验证码评论,因此咱也不说是谁的刷灌水机了. ...
- 防机器人验证机制之验证码
防机器人验证机制之验证码 防止爬虫.刷单.抢票等操作的机制. 常见方式 1. 随机文字 字母和数字,可加上噪点. 高难度的还可以增加噪点生成动态的图片,只有从连续画面中才能识别具体内容. 苹果的目前就 ...
- 滑动验证码相比图形验证码区别是什么?
前沿的基于机器学习建模.多维判断的 滑动验证码,不是简单计算滑块偏移量和按键精灵所能应付的,而图形验证码在当前不断发展的OCR.神经网络面前却越来越容易失守. 图形验证码的原理和识别,在三四年前就已经 ...
- chrome 验证码识别 扩展_验证码实在太过反人类?自动跳过验证码的神器-验证码,登录,安全 ——快科技(驱动之家旗下媒体)-...
目前网络上越来越多使用验证码了,验证码的本意是阻止机器刷流量挤占服务器资源,这本来无可厚非:但是验证码已经变得越来越过分,别说机器人了,连人也经常没法辨认! 这就相当烦了,特别是被广泛使用更多reCA ...
- python tensorflow验证码识别_TensorFlow 验证码识别
TensorFlow 验证码识别 • 准备模型开发环境 第三方依赖包 Pillow (PIL Fork) PIL(Python Imaging Library) 为 Python 解释器添加了图像处理 ...
- 短信验证码与图形验证码搭配使用更安全
现今验证方式多种多样,例如短信验证码.图形验证码.语音验证码.滑动验证码.口令验证码等.我们在注册账号.登陆网站的时候,会发现在获取关键的短信验证码时会遇到先输入图形验证码来增加操作的复杂性,表面上看 ...
- 短信验证码、图形验证码、邮件验证的自动化测试
短信验证码.图形验证码.邮件验证问题在自动化测试中是一个很常见的问题,也是一个很棘手的问题.设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站,而很不幸的是,我们所使用的一些自动化测试 ...
最新文章
- poi设置自动换行后显示不全_WPS表格:如何让数据超过单元格就自动换行并完全显示?...
- Beyond Compare4长期使用方法
- PAT (Basic Level) Practise:1037. 在霍格沃茨找零钱
- 我目前的主要研究方向
- 《构建之法》----自我答疑收获
- 2019全球PostgreSQL生态报告出炉,PG为何从RDBMS中脱颖而出?丨文末送书
- YOLO系列专题——YOLOv2理论篇
- manage.py和simplejson调用报错解决
- 【渝粤教育】电大中专审计原理与实务 (2)作业 题库
- SqlSessionFactory和SqlSessionTemplate
- C语言程序的开发过程
- The jar of this class file belongs to container 'JUnit 4' which does not allow ...
- 模板方法 (宝,我输液了,输的想你的夜)
- Swagger设置密码登录
- SpringBoot + Spring Cloud +Vue 管理系统前端搭建(二、visual studio code开发前端项目
- tick_params()--matplotlib
- 车企如何趟过「软件的坑」,大众集团或将在中国寻求收购
- ggplot2的安装
- 2019年5月-8月每日收获的知识点
- Bugly 遇到的问题总结
热门文章
- 【财富空间】陈春花:好公司就是要满足人们对美好生活的向往;技术如何驱动商业腾飞?...
- Oracle ERP财务部分词汇
- 2021年安全员-A证(山东省-2021版)最新解析及安全员-A证(山东省-2021版)模拟试题
- Paper2:VGG Notes
- SwitchHosts-快速切换Hosts
- MCS-51实现静态数码管的显示
- HTML开发 完美解决移动端H5页面pop弹出蒙版后底层滑动问题
- 2023年北京师范大学应用统计学考研前辈初复试备考经验
- 利用Javascript prototype特性使用模板设计模式对浏览器端绘图功能进行设计
- MySQL存储布类型的值_mysql 字段存储类型