你是逗B派来的验证码么

你是逗B派来的验证码么

在网上买火车票或参加电商秒杀抢购活动的时候经常会看到验证码,这个验证码到底是用来干嘛的?隔壁的程序猿滔滔不绝的讲解三天三夜,乌云君精简一下答案:“验证码就是用来判断你是不是人...”

这是自互联网自发明以来用户体验最差的事物,没!有!之!一!(虽然有人尝试把他变的有趣,比如用鼠标拖动小白兔将其准确的拖进大灰狼嘴里...)

他的流程是抛出不可预测的信息强制用户反馈,以结果正确性判断是人而非机器(刷票、刷单程序等)在操作。

验证码进入人机对抗的时代后,不服限制的黑客们对验证图像二值化、去色、降噪、切割对比、帧数放慢等方式给自动识别出来,所以如今的验证码为了反识却变的更反人类,比如这样

这样

或是这样

用户:你是不是不把我们当人看。。。

讽刺的是,程序可能还是会识别出显示内容,所以还是让我们考虑考虑那个大灰狼吃小白兔的设计吧。

今天微博上有人@给乌云君的一张图,引起了很多网友的兴趣与吐槽,我取了图中最关键的部分:

你有没有发现其中的亮点呢?

验证码的每个数字都是单独的图片,而且图片的命名采用了 img0.gif,img1.gif 这种方式,标记自己是什么数字。简单举例,假如验证码图片是1000,那HTML中现实验证码的地方就会这样输出图片:

<img src="images/img1.gif"> 
<img src="images/img0.gif"> 
<img src="images/img0.gif"> 
<img src="images/img0.gif"> 

我不用看图,只要用程序读取HTML源码就知道现在显示的验证码是什么,做一些人类做不到的事情,hoho,今天没吃药,感觉自己萌萌哒。。

那国际上那些互联网大佬们是怎么设计验证码的呢?是否很可靠呢?看看Google高大上的云验证码系统,reCaptcha!

什么是reCaptcha?

reCaptchas是由Google提供的基于云的验证码系统,通过结合程序生成的验证码和较难被OCR识别的图片,来帮助Google数字化一些书籍,报纸和街景里的门牌号等。

随机的背景、角度、大小、粗细、长度。。。都是不同的,极大的增加了自动识别的难度,而且心地善良的Google给reCaptcha加入了声音验证码的功能,用来给盲人提供服务。

可万万没想到的是,恰巧是这么一个贴心的验证码功能,却被自家服务给放倒,这就是Google的Web Speech API语音识别系统(语音输入的东西)。利用方式很显而易见了,让 reCaptcha 读出复杂的验证码,然后抓取音频文件,分析转码,提交给Google的语音识别系统进行结果识别。

本是同根生,相煎何太急。。。但这个案例都过于学术化,真正可行并且付出实战代价太高了,仅仅被牛人们当做一种技术挑战了,牛人的世界俺们不懂(具体细节参见最后的原始阅读)。

更新:@苏莉安 童鞋提了一个很好的问题 “reCaptcha不是用来辅助识别的吗?就是说Google自己也不确定其中一部分文字到底是什么,那是怎么生成语音的呢?”

这个原因是这样

Google确实不知道辅助识别码是什么(就是图中显示的那些内容)。但用户使用语音验证码后,Google是输出自己生成的验证码(与辅助识别码不同),并且语音验证码验证通过后,Google也就认为本次验证没有问题,放行之(也等于绕过了原来的辅助识别码)~

但从实际角度来讲,国内互联网验证码面临的威胁都有哪些呢?比如一些正在或曾经发生的经典案例:

1,设计简单导致识别

新版中国联通验证码可被简单识别(验证码识别实例及演示代码)

12306弱验证码可被轻松识别

设计的比较简单,很容易被识别,比如年初的12306自动填验证码刷票插件利用的技术,后来提高了验证码难度进行封杀,抢票用户叫苦不迭。


2,验证码作废机制不当

华为某处设计缺陷验证码成摆设。

进行操作后发现验证码没变,那么可以固定验证码后进行程序化海量发包操作。


3,疏忽接口

12306订单提交逻辑设计有权限导致可以绕过验证码直接提交订单

有的接口他就是忘了开或没法开验证码功能,能怎么办?


4,人海战术

(记得有些很强大的软件,忘记了名字,大致意思度娘出来的图仅供参考)

这个是验证码突破技术的必杀技,几分钱一个验证码回报给一些在校学生帮忙填写,纯人肉识别,势不可挡!

感谢 @孔祥舟 童鞋贡献的一个 SONY 的传神案例 cryptogasm.com/2011/07/ ,笑点大家自己体会下 :)

以乌云君的经验,验证码总是隔断时间就会出现一次经典并且大家喜闻乐见的案例,咱到时候在慢慢八~

--------------------------------------------------------------------------

原始阅读:

常见验证码的弱点与验证码识别

本是同根生,相煎何太急-用Google语音识别API破解reCaptcha验证码


网站:乌云漏洞报告平台

微博: 乌云君

微信: wooyun_org

知乎专栏: 乌云君 - 知乎专栏

联系邮箱: help@wooyun.org

编辑于 2017-06-08 15:25