作家
登录

小议验证码的安全性及如何绕过

作者: 来源: 2017-05-16 15:32:33 阅读 我要评论

一、什么是验证码?

CAPTCHA是(全主动区分计算机和仁攀类的图灵测试)的简称,是用于区分计算机和仁攀类的一种法度榜样算法,这种法度榜样必须能生成并评价仁攀类能很轻易经由过程但计算机却通不过的测试。

orwell

二、验证码的重要性

1. 防止与认证相干的进击行动

以下列举的是一些较易受到暴力进击的点。例如:

  • 登录:一旦缺乏验证码的保护,进击者则很可能经由过程暴力破解的方法不法接收用户账户。
  • 忘记暗码:如不雅收集应用法度榜样运器具体消息响应帐户存在或不存在,那么进击者则可以进行用户名的列举。
  • 注册:法度榜样批量创建垃圾账户。此外还可以进行用户名的列举。(正常情况下没有应用法度榜样会许可用户,同时注册两个雷同用户名的┞匪号)

进击者只须要制造一个脚本,即可向验证码发送随便率性值。鄙人图中,我们作为谜底发送的值是“InvalidAnswerOfCAPTCHA”

2. 避免垃圾邮件和DOS

我们知道很多网站都有提交表单的功能,并须要由站点治理员审核经由过程。例如:会员申请,接洽我们,反馈表,查询拜访钡寥。这些功能都须要验证码的保护,如不雅不加以防护那么将会导致以下情况的出现:

  • 大年夜量的垃圾表单可能产生,不仅会影响网站的拜访速度,还会加大年夜站点治理员的工作量,并且一些合法用户的请求,也可能会是以被拒绝。
  • 电子邮件耗┞法:一些功能可以发送电子邮件到一个随便率性的邮件地址。如不雅没有获得有效的验证保护,那么恶意进击者则可以应用法度榜样,向特定的目标发送大年夜量的垃圾邮件。

三、验证码为什么能被绕过?

验证码被绕过,有以下两个原因:

  • 设计问题
  • 履行问题

在以下的内容,我将会带大年夜家熟悉到这两个问题地点。以及若何解决这些问题,建立更为安然的人机验证。

1. 设计问题

3. 保护数据发掘机械人

  • 某些包含大年夜量数据的┞肪点极易遭受数据发掘进击,是以它们也须要验证码的保护。例如:社交收集和搜刮引擎。

(1) 设计问题#1:

以下的示例中我们可以看到,这里的验证码就是一道数学运题。而这狼9依υ?题就出在页面的HTML源码上。

captcha-arith.png

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/ArithmeticCAPTCHA

若何破解?

在这种情况下进击者往往都邑经由过程获取该页面的HTML源码,计算谜底并提交HTTP响应来破解验证码。

captha-arith-crack.png

你可以在Github高低载到该应用代码:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

(2) 设计问题#2:

某些验证码可能会采取相对有限的问题数据库。例如以下是一个基于图片的验证码,很显然这里不克不及再应用膳绫擎提到的破解筹划来破解。但这狼9依υ?题出在,这里的图片验证码字符是固定并且有限的,在本例中钙揭捉?证码只会在往返10个固定字符组合中改换。是以一旦控制了它的问题数据库,那么破解也天然就不盘考题了。

captcha-ten.png

你可以在Github高低载到钙揭捉?证码的源码:

若何破解?

进击者起首必须手动解决这10个验证码问题,并同时记录下这些问题的谜底。然后经由过程对象将这些问题的谜底存放在本身的数据库中,进行赓续的暴力进击测验测验即可。

captcha-tenrepeated-crack.png

你可以在Github高低载到该应用代码:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

2. 履行问题

履行问题则意味着验证码因为履行不力而可被破解,但大年夜设计的角度来看是完美的。

你可以在Github高低载到钙揭捉?证码的源码:https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/weakcaptcha2.php

以下示范将有助于我们懂得,履行问题的┞锋正含义以及若何破解它:

(1) 履行问题#1:

在演示中,我们正在应用Google reCAPTCHA人机验证。我们应用API将用户解决的CAPTCHA响应发送给Google的端点。更多请点击:

然则履行问题也就出在这里。开辟人员无法检查JSON响应,而以检查发送的HTTP状况码是否为200 OK,作为验证码精确与否的断定根据。

weak-captcha-1.png

你可以在Github高低载到钙揭捉?证码的源码:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/weakcaptcha1.php


  推荐阅读

  大变样:Firefox新一代UI “Photon”设计曝光

Mozilla 4月份曾宣布正在为即将宣布的 FireFox 57开辟一套全新的UI界面,并起名为Photon。这也是FireFox自2014年以来第一次对界面设计进行大年夜的调剂,FireFox 57将成为一个里程碑式的宣>>>详细阅读


本文标题:小议验证码的安全性及如何绕过

地址:http://www.17bianji.com/lsqh/35250.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)