利用puppeteer破解极验的滑动验证

原创 purezjr 随笔 学习 945阅读 2018-02-23 22:43:40 举报

上一篇文章写了一个puppeteer的简单入门,出于好奇想了一个问题,puppeteer能破解验证码吗???于是,正好就拿前端网来试试(纯粹出于学习)

基本的流程

1. 打开前端网,点击登录。

2. 填写账号,密码。

3. 点解验证按钮,通过滑动验证,最后成功登陆。

代码实现

github上可以checkout。

run.js

package.json

运行

1. 将这个两个文件保存到文件夹下面,终端切换到当前路径下

2. npm i

3. 补上前端网的账号,密码

4. node run

演示

下图演示可以分为四步:

1. 打开登陆页面,输入事先写好的账号密码

2. 第一次拖动滑块提示“被怪兽吃了”,所以重新计算了新的图片的缺口距离。

3. 第二,三次拖动提示“没正确合拼”,所以重新拖动。

4. 验证成功,登录

(请将鼠标放到gif上查看演示效果,或者请拖到新窗口打开git)

说明

1. 滑动验证有三个canvas,其中只需要 classname为 ‘geetest_canvas_fullbg’ 以及 ‘geetest_canvas_bg’的进行像素差对比。ps: 前者是完整图片,后者是带缺口的图片。

2. 每个带缺口的图片都有一块误导的阴影,所以对比像素差的时候,计算出的距离分别是误导阴影以及缺口的。因此,滑动距离的取值,我取‘{min:res[0]-7,max:res[res.length-1]-54}’。当缺口比误导阴影靠左时,min(距离最小值)值就是滑动距离,否则就是max(距离最大值)减去滑块宽度

3. 滑动结果分三种情况:验证成功被吃了失败“被吃了”会重新请求图片,所以重新计算了距离再滑动;“失败”则重新滑动,如果执行4次依然失败,则重新run整个流程。

整个流程大概就是这样,有兴趣的朋友可以交流交流

评论 ( 3 )
最新评论