天天看点

极验验证的滑动验证码破解

题记——毛主席教导我们一切帝国主义都是纸老虎

极验验证(http://www.geetest.com)是目前比较前沿新颖的一种验证方式,相比传统的字符型验证码更加人性化,用户验证的时间更短,更具交互性,同时也减少了网站的用户流失。该网站号称“超过200种人机行为特征检测,全面监控可疑机器攻击,快到每30分钟全网特征动态更新,迅速应对突发情况,多达5层异构安全模型滤网 ,360度保护网站安全”。博主最近在写爬虫时目标网站用的就是极验验证的验证,顺带着就破解了一下(就是这么霸气,哈哈)

我们先看一下极验验证是什么。极验验证的验证方式是给你一幅图,随机扣掉一块,让用户滑动滑块把图拼上,就能验证通过。

如图所示

开始时会给你一张原始图片

极验验证的滑动验证码破解

当鼠标点住滑块时,会出现拼图

极验验证的滑动验证码破解

\

用户把滑块拖到拼图缺失位置时,验证就会通过(图配错了,不过没关系,意思大家都懂 ^_^ )

极验验证的滑动验证码破解

第一步:模拟浏览器

第二步:找到拼图的位置

首先先通过selenium+phantomjs的截图的功能获得原始图片

极验验证的滑动验证码破解

再将鼠标点击住滑块(clickandhold),等待几秒,截图获得拼图的图片

极验验证的滑动验证码破解

我是通过比较像素点的方法找到缺失位置的的,当像素点差异过了一定范围,这时在比较该点附近的一些点来比较,确定是不是拼图的边界。附近的比较点有很大的说道,网上一些人说的横向比较(x轴)和竖向比较(y轴)考虑的都不太全面,要考虑拼图上的凸起和凹陷的情况

为什么不能直接通过差异来确定拼图缺失块边界呢。原因是对比的两张图是截图得来的,或多或少会有一些差异,保不齐就有一两个点被程序认为是目标位置的边界。同时也有可能对拼图的阴影位置误判。

极验验证的滑动验证码破解

第三步:滑动轨迹

前面几步我们知道了滑块应该滑到的位置,当我们让程序滑动时会出现下图的情况

极验验证的滑动验证码破解

(鉴于不断有人私信问回归怎么做的,博主在这说一下思路。2017.2.21)

极验验证的滑动验证码破解
极验验证的滑动验证码破解

本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1905937,如需转载请自行联系原作者

继续阅读