验证码识别

[转] 验证码的几个常见漏洞

寵の児 提交于 2020-04-07 08:48:53
原文: http://www.blogread.cn/it/article/5016 把验证码存储在Cookie中 一般来说,我们会把验证码的值用Session存储起来,通过对比用户提交的验证码和Session中的验证码,就可以知道输入是否正确。由于Session会占用服务器资源,我曾经想过是否可以把验证码的值加密后存储在Cookie中。不过事实证明,这只是异想天开罢了。 假设验证码的值是a,通过sha1加密后得到的值为b = sha1(a),并且把b存储在Cookie中。而用户提交的验证码值为c,通过判断sha1(c)是否与b相等,可以知道输入的验证码是否正确。然而, Cookie是受客户端控制的 。如果用户事先通过肉眼看到验证码的值是a,又从Cookie中得知此时的加密值为b,那么,他只要在提交前把Cookie的值修改为b,提交的验证码值为a,就可以永远通过验证。 没有进行非空判断 这种情况可以直接用代码来说明: if (Request["captcha"] == Session["captcha"] as string) { // 验证通过,继续操作 } 假设用户绕过了系统提供的表单直接提交数据,此时 验证码还没生成,Session["captcha"]为空。用户不提交验证码时,Request["captcha"]也为空 。于是,验证通过了。 要解决这个问题

第三代验证码研究

烈酒焚心 提交于 2020-03-27 06:33:01
原创文章,转载请标明出处! https://www.cnblogs.com/boycelee/p/11363611.html 随着机器学习与图像识别技术的发展,第一代、第二代验证码已经失去了安全验证的作用。为了增加识别难度,网站暴力升级图片验证码,严重破坏了用户体验。第三代验证码的诞生解决了这一痛点,第三代验证码已经不再是狭义上的验证码,它通过多场景多维度进行数据收集,为网站提供立体式安全保障。 声明 本文内容仅限于研究,不涉及各安全厂商具体源码与风控策略。维护网络安全,人人有责。 背景 前段时间分析了市面上一些安全厂商的第三代验证码协议,以下内容不针对任何厂商,仅聊聊自己对第三代验证码的理解。 验证码划代 (一)第一代验证码 定义:主要利用简单知识构建验证码。如中文、英文、数字等。 (二)第二代验证码 定义:以第一代验证码为基础,以创新交互方式的思想构建验证码。如看题选字、看图选物等。 (三)第三代验证码 定义:多场景多维度收集数据信息,为网站提供立体式安全防护。 第一第二代验证码退出历史舞台的原因 以下是我总结的两点原因 (1)随着机器学习与图像是被技术的发展,第一代、第二代验证码已经失去了安全验证的作用; (2)为了增加识别难度,网站暴力升级图片验证码,严重破坏用户体验。 举个例子 以上类型验证码我们通过肉眼识别准确率大约为30%,但我们拿到图片打码平台(魔镜

9.3 用户注册流程

纵饮孤独 提交于 2020-03-08 23:25:06
第一个问题,看到“用户注册”大脑一片空白怎么办?打开你的手机,退出你的qq、微信,点击“注册” :) 当然,现在微信注册诸多限制,比较繁琐,并不是一个典型的注册流程,在这里我主要想讲比较常规的注册方式。 我把注册方式分为 用户名注册 、 手机号注册 、 邮箱注册 、 第三方注册 、 其他注册方式 。它们并不是互斥关系,一个平台一般会提供这其中的一种或多种方式,并且在流程上会略有不同。 用户名注册 可以说是最简单的一种注册方式,用户在表单上填写1.自定义的用户名,2.输入两次密码,3.输入验证码,提交,即可注册。 现在国内很少有网站通过这种方式注册了,一般只有小网站会通过这种方式来降低用户的注册成本和提高用户信任度。 通过用户名注册,只需要确保自定义的用户名唯一即可。 手机号注册 比较常见的注册方式,流程如下: 1.输入手机号、验证码 2.点击获取手机验证码 3.手机收到验证码,填写短信验证码 4.提交,注册成功 手机号注册的变式有,手机验证码可能是短信,也可能是接听电话。 另外,如果是跨国服务性质的网站,手机号的处理会分不同的国际区号,比如中国就是+86。而针对不同的国家和地区,会有不同的短信服务商。 邮箱注册 比较常见的注册方式,流程如下: 1.输入邮箱、密码、验证码,提交注册 2.前往邮箱,打开邮件,点击链接,激活用户 邮箱注册流程有区别的点是,一些网站是直接点击邮件里面的链接

WEB自动化测试中针对验证码的解决方案 (三)

风格不统一 提交于 2020-03-08 14:13:32
说明:本文首发于《程序员》杂志2006年第11期,在此连载,转载请先得到本人同意,谢谢。另,本文与程序员杂志上的内容有少许差异。 4 自动测试中 WEB 验证码处理的方法 验证码给自动测试带来了很大的问题,但也并不是完全不能解决。结合我们在上文讨论的验证码实现的方法,图 4 给出了验证码实现的大致原理图。 从图 4 中可以看到,从技术的角度来看,至少设计两种不同的方法来实现自动测试工具对验证码的处理: 1、 完全从客户端角度考虑,靠模式识别的方法识别出验证码图片对应的字符串; 2、 从服务端角度考虑,如果自动测试工具可以获取 Session 中存储的随机数,也就能正确处理验证码了。 这两种方法是解决自动化测试中验证码问题的主要方法,我们分别称其为 识别法 和 服务端插入法 。这两种方法在实现方法上侧重点不同,适用的场合也不同。 识别法 完全不用考虑服务端应用的实现,通过各种技术方法对显示的验证码图片进行“破译”,这样,即使完全不能接触到服务端代码,也能让自动化测试在有验证码的情况下进行下去;但这种方法当然也有其致命的缺点:只能对简单的验证码进行识别,对复杂的验证码,根本就无法识别。 而 服务端插入法 则从服务端入手,通过提供一个额外的客户端接口,向客户端只需要知道该接口的调用方法,就能通过该接口来获取该页面的验证码图片对应的实际数据,并使用该数据继续测试。 另一方面

python图像识别--验证码

感情迁移 提交于 2020-03-02 18:14:33
1、pip3 install pyocr 2、pip3 install pillow or easy_install Pillow 3、安装tesseract-ocr: http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe ,安装在C:\Program Files\下 4、要求python默认安装在C盘 5、找到 pytesseract.py 更改 tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe' 代码: # !/usr/bin/python3.4 # -*- coding: utf-8 -*- import pytesseract from PIL import Image image = Image.open('../jpg/code.png') code = pytesseract.image_to_string(image) print(code)    如果出现错误: 'str' does not support the buffer interface 将 `pytesseract.py` 中的下面语句更换: 1 lines = error_string

C#使用Tesseract OCR 解析验证码

孤街醉人 提交于 2020-03-01 14:20:35
下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是Google在维护,大家都知道Google 在搞电子图书馆,每天都有不同类目的书被扫描成电子版。所以有G老大维护,识别率差不到哪里去。呵呵。。别鄙视我。。。 Tessnet2 是用vc ++ 开发的,其中是生成Tessnet2.dll ,我们可以通过.net 来调用内部具体类库实现识别。 Tessnet2的使用: 1、点击 http://files.cnblogs.com/zhuxiangyu/tessnet2_32.rar 链接下载Tessnet2.dll , Tessnet2是支持多国语的。语言包下载链接: http://code.google.com/p/tesseract-ocr/downloads/list 2、将Tessnet2.dll 添加到vs 引用中,和添加.net程序集一样。 3、用Tessnet2进行识别 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 WebRequest request = WebRequest.Create( " http://sz.2zf.cn/js/code2.asp " ); WebResponse

网站安全检测之逻辑漏洞检测 修复方案

寵の児 提交于 2020-02-28 17:14:19
网站安全是整个网站运营中最重要的一部分,网站没有了安全,那用户的隐私如何保障,在网站中进行的任何交易,支付,用户的注册信息都就没有了安全保障,所以网站安全做好了,才能更好的去运营一个网站,我们SINE安全在对客户进行网站安全部署与检测的同时,发现网站的业务逻辑漏洞很多,尤其暴利破解漏洞。 网站安全里的用户密码暴利破解,是目前业务逻辑漏洞里出现比较多的一个网站漏洞,其实暴力破解简单来说就是利用用户的弱口令,比如123456,111111,22222,admin等比较常用的密码,来进行猜测并尝试登陆网站进行用户密码登陆,这种攻击方式,如果网站在设计当中没有设计好的话,后期会给网站服务器后端带来很大的压力,可以给网站造成打不开,以及服务器瘫痪等影响,甚至有些暴力破解会利用工具,进行自动化的模拟攻击,线程可以开到100-1000瞬时间就可以把服务器的CPU搞爆,大大的缩短了暴力破解的时间甚至有时几分钟就可以破解用户的密码。 在我们SINE安全对客户网站漏洞检测的同时,我们都会去从用户的登录,密码找回,用户注册,二级密码等等业务功能上去进行安全检测,通过我们十多年来的安全检测经验,我们来简单的介绍一下。 首先我们来看下,暴力破解的模式,分身份验证码模块暴利破解,以及无任何防护,IP锁定机制,不间断撞库,验证码又分图片验证码,短信验证码,验证码的安全绕过,手机短信验证码的爆破与绕过等等几大方面

结合Tesseract完成图形验证码识别

旧巷老猫 提交于 2020-02-25 15:53:39
结合Tesseract完成图形验证码识别 Tesseract Tesseract是目前最准确的OCR(Optical Character Recognition)库.具有很高的灵活性,它可以通过训练识别任何字体。 安装 windows: https://github.com/tesseract-ocr/tesseract 设置环境变量 安装完成后,如果想要在命令行中使用Tesseract,那么应该设置环境变量。Mac和Linux在安装的时候就默认已经设置好了,在Windows下把tesseract.exe所在的路径添加到Path环境变量中 还有一个环境变量需要设置的是,要把训练的数据文件路径也放到环境变量中。 在环境变量中,添加一个TESSDATA_PREFIX= 这个路径value值跟这样设置即可 在命令行中使用tesseract识别图像 使用命令:tesseract 图像路径 文件路径 示例: tesseract a . png a 那么就会识别出a.png中的图片,并且把文字写入到a.txt中。如果不想要写入文件直接显示在终端,那么不要加文件名就可以了。 在代码中使用tesseract识别图像 (1)安装 pip3 install pytesseract - - default - timeout = 1000 同时读取图片,需要借助一个第三方库叫做Pillow (2)

resume 简历

荒凉一梦 提交于 2020-02-25 00:30:05
1:uestc社会实践平台,sql,mapper.xml,,图片验证码,读写excel,excel和list,数据库的转化。 2:购物网站,全代码,平台搭建,服务发布,远程数据库连接,前端,搜索,支付。 3:物流平台:凉山朝廷物流商务有限公司,工资结算模块。vert.x异步编程,不需要tomcat了。 4:健身app智跑吧,防刷短信条数,4.1 限制同一ip,4.2限制同一手机号码条数,4.3,图片验证码,4.4,token识别,加口令数字。4.5,发送流程限制,先注册完成,在跳转到发送短信界面。 5:bos 2.0 来源: https://www.cnblogs.com/liyafei/p/8360772.html

深度学习:验证码识别

柔情痞子 提交于 2020-02-17 02:02:02
需求:验证码识别 方案:数据集和样本本身很小,使用全连接层神经网络预测 code: github 数据集 图片数据集链接:https://pan.baidu.com/s/1ENAtDuyTriCa94CKBONHXg 提取码:77as(由于该链接中的数据不是压缩包的形式,非会员下载极其麻烦,所以不推荐这种方法) 自己使用代码生成验证码图片及csv文件(推荐) 直接使用tfecords文件(推荐) 文件介绍 cap_input.py:是将数据集数据使用tfrecords文件保存的代码 cap_train.py:是 简单的 模型设计文件 核心思想: 数据处理 验证码由字母转为0~26之间的某个数字进行代替,作为临时目标值 样本的目标值设置为[None,4*26]的one-hot编码形式,作为真实目标值。 模型创建:建立神经网络(全连接层神经网络) 损失函数:softmax配合交叉熵损失函数进行损失计算 损失函数求解:梯度下降求解损失函数。 预测判断:对于一个样本预测的“4”中如果“26”个元素概率最大的索引和真实值的对应位置的最大索引不同,则认为预测错误。 来源: CSDN 作者: 如厮__ 链接: https://blog.csdn.net/rusi__/article/details/104349464