极验滑块坐标识别(一)

一:介绍

一些网站为了区分人机行为,在网站的一些操作上添加验证码机制,来实现反爬虫。

目前比较常见的验证码类型有:

  1:传统式验证码

  • 主要通过用户输入图片中的字母,数字,汉字等来验证。
  • 特点:简单易操作,人机交互性较好,但安全系数比较低。
  • 目前通过机器学习技术对传统验证码的识别率已经可以达到90%以上。

  2:行为式验证码

  • 行为式验证码是一种较为流行的验证码。从字面来理解,就是通过用户的操作行为来完成验证,而无需去读懂扭曲的图片文字。常见的有两种:拖动式与点触式。
  • 特点:操作简单,体验好,但容易被逆向模拟
  • 代表:极验验证码

  3:图标选择与行为辅助

  • 给出一组图片,按要求点击其中一张或者多张。借用万物识别的难度阻挡机器。
  • 特点:安全性强。对于图片、图库、技术要求高。
  • 代表:12306验证码

二:分析

目前博客园采用的就是极验的验证码

推荐使用Chrome浏览器进行研究

  1:初步了解

  进入博客园的登陆界面:https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F

  输入账号密码以后点击登陆

  

  这就是极验的滑块验证码,最开始显示的是一幅完整的图片,当鼠标按住滑块时

  

  出现缺口位置,需要通过鼠标滑动到缺口位置,释放鼠标完成验证

  2:抓包分析

  可以猜想到,图片是从网络读取过来的,我们打开开发者工具(F12)进行抓包

  

  点击刷新按钮,再加载一张新的验证码图片

  

  抓到了4个数据包,第一个是js文件,后面三个是图片文件(webp格式不了解的可以去查一下)

  我们首先点开这个js文件,切换到Preview视图中

  

  可以看出这是js的一个回调函数,参数中有几个url,逐个复制到浏览器中打开,可以发现应该是验证码图片

  打开后面几个数据包可以查看到相同结果

  

  但是我们又发现这图片并不是在浏览器上看到的一样,被打乱了,应该是在加载以后在浏览器中进行还原的

  我们点击开发者工具中的选择元素按钮(快捷键Ctrl+Shift+C)

  

  将鼠标放到图片验证码上单击

  

  

  开发者工具锁定到了对应的元素位置,我们发现是一个canvas元素,可以猜想到,应该是通过js计算之后画到浏览器上面的

  (在早期的极验版本中,验证码使用的是无数个div块进行拼接,网上文章也很多,本文不再讲解)

  3:js代码分析

  进行代码分析的第一步就是需要定位到核心代码位置,再进行分析

  我在定位代码时候尝试了两种方法

  • ajax断点
  • 事件监听断点

  下面将这两种方法都说一下

    (1):ajax断点

      很多网站都是通过ajax异步加载服务器的数据用来提高用户的体验

      我们也可以通过ajax断点来中断到发送请求的地方

      选择开发者工具的Sources视图

    

    在右侧的xhr/fetch breakpoints 中点击+号

    

    回车,即下了一个断点

    

    现在要触发这个断点,我们进行刷新验证码

    我们发现,代码并没有断下,网站可能不是通过这种方式加载代码的

    接下来尝试进行事件监听断点

    

下面内容请看极验滑块坐标识别(二)

原文地址:https://www.cnblogs.com/windpiaoxue/p/9096276.html

时间: 2024-08-07 09:04:35

极验滑块坐标识别(一)的相关文章

极验验证码的破解2-图片还原和滑块位置求解

上一章我们讨论了破解极验验证码的思路和步骤,这一章我将介绍如何还原两张背景图和求解滑块的目标位置. 一.图片还原 我们首先看看页面上给了我们什么参数: 这个是完整的背景图(fullbg)的页面元素,可以看到他们都是来自于同一张原图,只是截取的位置不同.上图红框就是该小图片在原图中的位置,每一张小图片都是10个像素宽,58个像素高,我们再来看看原图: 确实很乱,根本看不出什么东西.如果我们把这个原图下载下来,然后按照页面上的参数截取一个个10像素宽,58像素高的小图片拼接在一起便可以得到完整的背景

极验验证码 破解

本文主要提供目前极验的识别思路. 极验验证码主要分为4步. 1/ 还原验证图片.通过分析CSS,发现是固定位置,把一张图片分成若干份,按照指定顺序重新排列,所以难度不大. 2/ 还原好图片后,找出2张图片的差异,即bg(验证图)和fullbg(全图).这个难度也不大,按像素或者按块去扫描.设定一个阈值,当2个图片块或像素的差异值高于这个阈值的时候,就横向向右再扫描几个像素,例如10个,如果这10个像素里面有7个都高于这个像素.那个这个像素所在图片的X坐标,就是我们要的坐标点.根据这种方式,识别坐

极验验证码的破解4-执行破解

经过以上的铺垫,我们就差最后一步了-破解!首选我们来分析一下要做的事情: 1.加载包含验证码的页面,当然是用我们前面讲的phantomaJS来加载啦,因为极验验证码是依赖于js渲染的,我们必须等页面完全渲染完成后再执行拖动 2.收集一些页面的参数发送到java后台服务计算滑块的目标位移并接受结果 3.通过js模拟鼠标事件来实现滑块的移动 4.输出验证结果 好,让我们一步步来讲解如果实现上面的目标. 我们首先新建一个js文件,就叫做geetest_refresh.js好了,我们首先写一些样板代码,

极验验证码的破解3-模拟浏览器渲染

前面我们介绍了如何求解极验验证码的滑块目标位移,下面我就就要开始实施拖动滑块破解了.因为我们采取的是模拟人的行为操作,而极验验证码都是js渲染的,因此我们需要一个工具来帮我们完成这个渲染过程得到一个完整的页面,否则一切都是空谈.这里我将使用casperJs+phantomJs来实现目标. phantomJs号称一个headless的浏览器,也就是包含浏览器内核但是没有界面的浏览器,它是跨平台的,安装很简单,解压到一个目录即可. casperJs是基于phantomJs的封装,提供了更友好的api

selenium处理极验滑动验证码

要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题https://www.zhihu.com/question/28833985,我按照这思路去大概实现了一下. 1.使用htmlunit(这种方式我没成功,模拟鼠标拖拽后轨迹没生成,可以跳过) 我用的是java,我首先先想到了用直接用htmlunit,我做了点初始化 private void initWebClient() { if (webClient != null) { return; } we

极验验证码破解之selenium

这一篇写完很久了,因为识别率一直很低,没办法拿出来见大家,所以一直隐藏着,今天终于可以拿出来见见阳光了. 哈喽,大家好,我是星星在线,我又来了,今天给大家带来的是极验验证码的selenium破解之法,是不是有点小激动呢,小伙伴们等不了了,让我们赶紧直入主题吧. 虎嗅网注册 这次我们是拿虎嗅开刀,注册账号的时候需要滑动图片到缺口位置,这种验证码我们现在也经常遇到,这个就不用详细介绍了吧 针对这种验证码我们首先确定了使用selenium模拟滑动破解方式,selenium鼠标移动点击拖动都比较简单,那

极验验证码的破解-开篇

    近几年有个拖动解锁的验证码风头很盛,用过12306的人就知道,它有段时间用的就是这个拖动解锁的验证码,据说就是极验验证码,虽然现在12306的验证码变成了看图识画,安全性和趣味性大大提高,但是也还是被万能的大神破了.由此看来天下没有破不了的验证码,只要功夫深,防火墙也能磨成针.     好了,今天我们来探讨一下极验验证码的破解,这也是我最近一段时间的研究成果.首先声明一下:本博客所讨论的内容仅限于技术研究,请勿用于商业用途,否则后果自负.     我打算分成几个章节来讨论极验验证码所采用

GEETEST极验召集互联网大佬齐聚光谷,共同探讨交互安全问题

全球互联网技术在飞速发展的同时,网络安全事件也随之频发.除了直接带来经济损失的网络恶意攻击之外,企业在多个方面也遭受着不同程度的网络恶意攻击,包括品牌形象.管理时间.企业竞争力.客户成交量.用户行为等. 极验自2012年成立以来, 一直专注于利用人工智能技术解决日益严峻的互联网交互安全问题.为了更好的帮助企业应对日益严峻的交互安全形势,极验于9月14日举办的以"新视角.新安全"为主题的线下沙龙在光谷创业咖啡举办. 本次沙龙聚集了盛天网络.斗鱼TV.九州通.长江证券.泰康在线.楚天云.卓

GeeTest 极验验证

前台Html页面 <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script src="http://static.geetest.com/static/tools/gt.js"></script> <div style="margin:300px;" > <div id="yz