怎么破解验证码破解器

在这篇文章中我将讲述近期在Instagram上發现一个漏洞理论上可以让我入侵进任意一个Instagram账户。Facebook和Instagram的安全团队在接收到我的漏洞报告后确认了漏洞的存在作为他们漏洞赏金计划嘚一部分,奖励了我30000美元

在这篇文章中我将讲述近期在Instagram上发现一个漏洞,理论上可以让我入侵进任意一个Instagram账户Facebook和Instagram的安全团队在接收到峩的漏洞报告后确认了漏洞的存在,作为他们漏洞赏金计划的一部分奖励了我30000美元。

Facebook一直在努力改善其下属所有平台的安全性能因此,他们最近提高了所有致命漏洞(包括账户接管)的奖金在这种情况下我决定去Instagram网站碰碰运气。幸运的是我发现了一个帐户接管漏洞。

对於帐户接管漏洞我首先想到的是Instagram帐户的忘记密码功能。

但可惜的是Instagram网站的重置密码功能(其中一种形式)需要用户去点击某条随机生荿的链接,我在研究了一段时间后没有发现任何漏洞。

于是我开始研究基于手机验证码破解器的重置密码功能,并最终找到了某种应對暴力破解缺陷当用户在重置密码处输入手机号码,点击发送后手机号码会收到一个六位验证码破解器。只有正确输入验证码破解器才能继续更改密码。因此如果我们能够在一段时间内尝试100万个验证码破解器,我们就能进入下一步更改任何帐户的密码。当然Instagram对驗证码破解器的一定存在验证速度限制,为了清楚其内部机制我决定对验证码破解器进行暴力破解。

最终我发现大约每1000个请求中有250个能正常发送出去,其余750个请求大概是被限速机制所阻拦了接着我又发送了1000个请求,发现更多的请求被阻拦看来这个限速机制运行良好。

但我还是发现了两个可以利用的特点一个是我的ip始终没有被列入黑名单,其次是在一定时间内发送某个数字之下的请求不会被阻拦

洅经过几天的持续测试,我发现有两件事可以让我绕过Instagram的速度限制机制

对于那些不了解竞争冒险的读者,可以点击了解使用多个ip并发發送请求可让我在一定时间内不受限制地发送大量请求。我们可以发送的请求数量取决于请求的并发和我们所使用的ip的数量另外,需要紸意的是手机验证码破解器会在10分钟内过期,因此要完成破解,我们需要数千个ip来执行攻击

最初,在我向Facebook安全团队报告了这个漏洞後由于我的报告中缺少某些必要信息,他们无法复现但在发送了几封说明邮件和PoC视频后,我成攻说服了他们这个漏洞确实存在。

上述请求发出后受害者会受到一个验证码破解器,10分钟后过期

现在我们就可以使用多个ip进行暴力破解。在我的示例中(目标为短时发送20萬个请求)为了不触发速度限制,每个IP大概负责发送200个请求

我使用了1000台不同的机器(实现并发不困难)和ip发送了20万个请求(占100万的20%)。

在真实嘚攻击场景中为了尝试100万个验证码破解器,攻击者大概需要5000个ip这听起来是个很大的数量,但如果你使用Amazon或谷歌的云服务那么这就会變得很简单。据我估算大约只需要花费150美元。

Facebook安全团队在收到上述视频说明后被我说服迅速解决了这个漏洞。

我还是很感谢Facebook给我的漏洞奖励!

最近看到一篇关于PHP验证码破解器嘚原理分析很精彩!昨天试着写了一写,感觉样本足够的话准确率确实很不错

他的原理大致是:图像二值化,去噪分隔字符,比对芓典

作者大人有些地方写得很含糊,我来总结概括一下:

我们先用干扰少一些的进行举例

根据每个像素的RGB来判断是背景还是字符。此莋法可行的原因是制作验证码破解器的时候背景是不能过于干扰认证字符的。

在例子中的验证码破解器的RGB三个的大致范围是:红大于100綠大于150,蓝大于220我们将处于这个范围的RGB的像素点设为1,其余为0运行部分代码我们可以得到如下的结果:

我们大致可以看出验证码破解器的样子。

在图像二值化的过程中或许有一些背景的干扰素也会存在于我们所列举的RGB的范围内。我们为了在分割的时候准确率更高我們需要去噪。我们去噪的方法也很简单判断噪点位置的上、下、右、左、上右、上左、下右、下左八个方向是否含有有1值。若八个方向嘟不存在1值那么说明此处为噪点我们将他设为0。(貌似这个图例的干扰素比较单纯所以基本上不用早点处理都可以得到比较好的二值囮图像)

先左右分割,确定每个字符的边界(如果是上线分割就不好确定边界了)然后上下分割,确定字体长度

这里涉及一个问题,洳果验证码破解器在制作的时候有少量粘连情况怎么处理

我们采用了一个很简单的算法,就是用字符的开始边界减去结束边界如果超過了字符的宽度阀值,那么我们就取边界只差的/2当作第一个字符的结束边界

字典需要大量的样本作为前提,特别是对于有旋转或是干扰素比较复杂的如果对于无旋转且干扰素比较单一(如样本),那么只需要包括所有数字和大小写字母即可

下面是程序运行图,可以看箌判断的准确率很高。

 貌似在网上能找到作者写的代码但是太复杂了。我把他进行了重写了一下

另外,代码中使用的是数组方式存儲字典数据其实更好的方式是上载数据库中。

另外为了方便需要破解的对象我采用的是某一个样本文件。但是方法本身没问题就是對字典中所有字符二值的逐一匹配。

对于验证码破解器的制作通过上面的分析,我们应该多增加粘连字符或者进行随机的缩放例如像QQ戓是淘宝,虽然验证码破解器看起来比较简单但是由于粘连数比较大,就增大了字符的分割难度

虽然都是单一色调,RGB范围也比较稳定但是4个字符互相直接粘连,让破解准确率降低(请忽视51CTO的水印)

而对于下列的验证码破解器形式,用以上的办法可以达到90%的破解率!所以请各位看官多多注意

原标题:看看资深程序员是如何敎你破解图形验证码破解器!这不很简单嘛!

图形验证码破解器应该是最简单的一种验证码破解器这种验证码破解器是最早出现,也是目前最常见的一般组成规则是4个字母或数字或混合组成;

下面这种,下2篇文章会介绍;

识别图形验证码破解器需要安装 tesserocr这个库下面介绍丅tesserocr;

打开后,可以看到各种exe的列表可以随便挑选;

下载后双击,一路点击直到出现下面这个页面

如果提示'tesseract' 不是内部或外部命令,则是因為没有配置环境变量手动把tesseract根目录配置到path参数下即可,这块不详细说明;

接下来就 安装tesserocr直接pip命令即可:

但jb在安装的时候,直接报错:

經历千辛万苦终于找到一条可行的命令:

如何验证是否真的安装了?很简单直接import tesserocr,不报错就说明安装好了;

在不同发行版本运行如上命令即可完成tesseract的安装;

安装完成后,便可以调用tesseract命令;

默认也是指安装英文语言如果需要安装其他语言,请看下上面Windows的介绍一样的處理方案,这里不重复说明;

接下来就是安装tesserocr直接使用pip安装:

ok,完事具备,那就开始吧新建项目,把验证码破解器放到项目根目录下;

结果运行后,啥都没有?

接下来jb陷入了困扰,包括调试找各种文档,最终把上面调试的验证码破解器换了一个:

替换下图片,再執行一次代码:

OK看到是有数据了,不过输出的是MEEE跟验证码破解器的ME8E还是有点不一样;

结果也跟上面的一样,但网上不建议这么用原洇是据说这种识别效果不如上一种的好;

关于微博验证码破解器为空,使用tesseract输出下原因:

网上找了下信息比如这张验证码破解器:

可能昰验证码破解器内的多余线条干扰了图片的识别;

图片成功转灰了;此时我们再校验一下,发现校验还是MEEE失败;

传入1的后,即可将图片進行二值化处理:

(二值化是指将图像上的像素点的灰度值设置为0或255也就是将整个图片呈现出明显的只有黑和百的视觉效果)

这个一看,比上面更模糊了理所当然的,校验结果会错的更加离谱:

这里说明下可能有同学对256不明白,这是什么

首先,我们是把图片置灰处悝灰度图像是一种具有从黑到白256级灰度色阶或等级的单色图像;

对于灰度图像利用阈值得到二值化的图像, 也就是说我们设定了一个閾值,从0到256如果灰度图像少于阈值则设置0,大于阈值则设置10是黑色,1是白色这样做,就可以把一个灰度图完全转换二值化图;

可能還是懵逼直接贴图:

在灰度图上,部分色彩是介于白色跟黑色之间所以通过设置阈值的方法,把这些中间色彩全部转换成黑色跟白色;

ok,扯远了上面把验证码破解器二值图后是长这样的:

good,有所变化 至少不是MEEE了,那我们继续调调到一个合适的值;

调了半天,jb放弃了原因是这个8,不管怎么调都调不到一个合适的值一直在S、R、B之间徘徊;

上面同样的代码,无修改二值图如下:

oh year,这个能校验出来了~

还記得我们一开始那个微博验证码破解器吗我们也来试试,处理后的验证码破解器是这样的~

结果校验的时候基本上都空,只有在138的时候會有一点点识别效果但是压根不搭边;

对比了下,微博验证码破解器跟上面能识别的验证码破解器:

实心的好处在于图像处理后,黑皛分明但是空心在图像处理后,由于线条本来就很细处理后可能都识别不出来了;

本章学习了tesserocr及tesseract的环境搭建,以及如何对图形验证码破解器进行噪音处理并且讲解灰色图跟二值图的概念;

实际发现,tesserocr仅能解决实心的验证码破解器对于空心的验证码破解器,依然束手無策那怎么办呢?

既然图像识别存在误差那我们就放弃这条路,而是通过其他的方式来获取这个验证码破解器;

比如直接找到生成这驗证码破解器的代码二次转化获取验证码破解器深度学习训练机器识别;

如何获取验证码破解器的生成代码二次处理获取验证码破解器

我要回帖

更多关于 验证码破解器 的文章

 

随机推荐