云片滑块验证码破解思路

作者:Qiled
邮箱:qiled@qq.com
项目Github地址:https://github.com/chenjinhu/YunpianPojie
交流添加Tencent QQ:10525001


实验网址:https://www.yunpian.com/product/captcha
实验滑块类型:嵌入式
实验工具:鬼鬼JS调试工具


1.抓包分析

A: 此滑块验证码的样子

B: 拖动抓包
这边可以看到bg,front其实在后面的链接是有进行请求的.token是在我门最后校验结果的时候需要使用的(学会使用搜索,会让你效率翻倍)

C:验证包

成功返回

ypjsonp({"cb":"yhpyiotkew","code":0,"data":{"authenticate":"716cc41fc7b04da0b24bc85de6d8cec0","result":true,"token":"a85748dc9e874a759f5061aace13009b"},"msg":"ok"})

失败返回

ypjsonp({"cb":"drsntt09ln","code":2,"msg":"verify fail"})

2.JS分析

A:先看看验证包。这边的位置非常的好定位,如果不会定位请看我之前的一篇今日头条的文章。方法是一样的 https://blog.csdn.net/Qiled/article/details/100636107

下面的代码我进行了一些注释,标明了我们主要分析的地方, 我们进入encrypt看看。

value: function(t, e, n, r) {var i = 3 < arguments.length && void 0 !== r ? r : null, o = this.cbManager.preAdd(), a = location.origin;e.fp = this.fingerprint, e.address = a,e.yp_riddler_id = st.cookie.get("yp_riddler_id") || "";var s = this.encrypt(e); # 此处是一个重点。i,k都是它生成的。t = "".concat(this.HOSTS, "/").concat(this.version).concat(t, "?cb=").concat(o, "&i=").concat(encodeURIComponent(s.i), "&k=").concat(encodeURIComponent(s.k)),this.token && (t += "&token=".concat(this.token)),this.APP_ID && (t += "&captchaId=".concat(this.APP_ID)),this.cbManager.add(o, t, n, i)
}

encrypt里面我们可以看到,有2个加密, 一个是i的加密,一个是k的加密。 i的加密方式是一个AES加密(自行进去跟一步就好了)。k的加密是rsa加密。e为AES的key,n为AES的iv。 然后rsa加密的是 key + iv。如果玩过这类东西的同学,应该要对这些非常的熟悉。 这边不多讲了。

        key: "encrypt",value: function(t) {t = JSON.stringify(t);var e = st.getRandomStr(16) , n = st.getRandomStr(16); ##我们在这里下断点return {i: tt.a.encrypt(t, nt.a.parse(e), {iv: nt.a.parse(n)}).toString(),k: this.rsaEncrypt(e + n)}}

这时候我们把断点下到 n = st.getRandomStr(16); 看看i被加密前是什么

{"points":[[65,285,48],[78,272,64],[96,260,74],[115,260,87],[128,265,98],[134,263,114],[144,266,126],[156,277,133]],"distanceX":0.3104166666667,"fp":"23234cef968a0ae2daf45a3141980038","address":"https://www.yunpian.com"}

这里我们看到有 points(轨迹)distanceX 的算法

distanceX = offset/ImgWidth

此时我们的算法就全部分析完了,还有一个轨迹算法靠自己一点点尝试。 剩下的就是扣代码。这边我已经把JS代码上传至github,需要的同学可以自行下载阅读。希望各位给个Star!

云片滑块验证码破解思路相关推荐

  1. 阿里系纯滑块验证码破解思路

    本文旨在经验交流,如若侵犯利益,请联系删除. 2020.04.13 自古评论区出大神,我也隔了段时间没搞滑块了,下面例子不知道还能用不,推荐热心网友写的解决方案 Selenium反反爬-滑块验证 20 ...

  2. 极验第四代滑块验证码破解(三):滑块轨迹构造

    极验第四代滑块验证码破解(三):滑块轨迹构造 声明 一.极验滑动轨迹分析 1. 生成滑动轨迹的js入口 2. 滑动轨迹的python实现 二.结语 *本期文章结束啦,如果对您有帮助,记得收藏加关注哦, ...

  3. 极验滑块验证码破解与研究(二):缺口图片还原

    极验滑块验证码破解与研究(二):缺口图片还原 声明 一.缺口图片还原js分析 1. 为什么需要还原 2. 本篇文章需要用到的小工具 2.1. reres插件 3. 找到图片还原js入口函数 3.1. ...

  4. 极验滑块验证码破解最新版

    一.简述: 最近无聊想搞一下极验的滑块验证码破解这块,发现破解js代码耗时又耗力出现版本更新可能以前的所有努力都要推翻重做,不够通用性,最后还是选用selenium + PIL 来实现滑块验证码的破解 ...

  5. 极验第四代滑块验证码破解(四):请求分析及加密参数破解

    极验第四代滑块验证码破解(四):请求分析及加密参数破解 声明 一.极验请求分析 1. 滑块测试网站入口 2. 滑块验证过程抓包 3. 请求详解 3.1. adaptive-captcha-demo 3 ...

  6. 极验滑块验证码破解与研究(三):滑块缺口识别

    极验滑块验证码破解与研究(三):滑块缺口识别 声明 一.环境安装 1. 第三方库安装 二.滑块缺口识别 1. 准备工作 2. 工具函数说明 3. 接口识别原理讲解 4. 缺口识别完整代码 三.结语 * ...

  7. 极验第四代滑块验证码破解(一):AST还原混淆JS

    极验第四代滑块验证码破解(一):AST还原混淆JS 声明 一.环境安装 二.AST还原混淆JS 1. 需要还原的js代码链接 2. AST还原源码 3. 极验不同js或不同版本还原方式 三.结语 *本 ...

  8. 极验第四代滑块验证码破解(二):滑块缺口识别

    极验第四代滑块验证码破解(二):滑块缺口识别 声明 一.环境安装 1. 第三方库安装 二.滑块缺口识别 1. 与极验三代滑块对比 2. 缺口识别完整代码 三.结语 *本期文章结束啦,如果对您有帮助,记 ...

  9. Selenium模拟登录系列 | 淘宝滑块验证码破解!不难嘛!

    导 语 好久没更新了,上来冒个泡吧.各位小伙伴还记得前段时间号主挖过的一个坑嘛(虽然我曾经挖过无数个坑T_T): Selenium模拟登录系列 | B站滑块验证码破解 今天随手更新了一下Seleniu ...

最新文章

  1. Go 语言编程 — net/http — HTTP 服务端
  2. java数数字及while和do while 的使用,以及程序的调试与验证
  3. boost::core模块实现constexpr的地址
  4. python 中文apichm_python api 中文 chm
  5. cmos图像传感器应用实例及其发展趋势分析
  6. 微软电脑适合什么人用_眼膜适合什么年龄段的人使用呢?什么年龄段的人用什么样的眼膜...
  7. ultilize什么意思_utilize是什么意思_utilize在线翻译_读音_用法_例句_含义-查字典网...
  8. 树莓派 opencv 调用摄像头
  9. python如何逐行读取文件_python怎么逐行读写txt文件
  10. 10个免费图片站点(2020年最新)
  11. Windows Sever(修改计算机名并加入工作组)
  12. org.gjt.mm.mysql.driver_org.gjt.mm.mysql.Driver意思和 Java连接数据库代码
  13. 53端口渗透之dns劫持与欺骗篇
  14. 【算法】并查集的运用
  15. SVN出现黄色感叹号,红绿双箭头
  16. mysql 创建用户 create user_MySQL数据库创建用户(CREATE USER)
  17. 苹果电脑自动键入密码_键入时控制上网本或笔记本电脑的触摸板
  18. Ajax参数对照及Success内容
  19. 用python中If-Else做奇偶数的判断
  20. 读易[11]·业务平台在系统中的位置

热门文章

  1. python double free_double free or corruption的原因
  2. Linux基础知识与文件系统简介
  3. 读书笔记-精准努力-贫穷不要难过
  4. 《全国一体化政务大数据体系建设指南》解读一
  5. Jenkins 搭建C++持续集成环境
  6. OJ题 石头剪子布
  7. 疫情背景下小学线上教育的思考与实践
  8. C# 数组拷贝 数组截取前几个值 的方法
  9. 学习考证选择哪个平板电脑
  10. Java技术面试与HR谈薪资技巧