网址:aHR0cHM6Ly93d3cuaXFpeWkuY29tLw==

一、整体流程分析
爱qiyi整个登录滑块流程主要分五步:

1、访问dfp_pcw/sign拿到dfp参数
2、访问login.action拿到token参数
3、访问sbox_init_key拿到sig,sid,sr参数
4、访问verifycenter/initpage拿到滑块相关数据(包括图片的地址以及还原图片的数组)
5、访问verifycenter/verify,然后"msg":"成功"即通过滑块

二、根据每个包需要的参数逐个跟栈

1、dfp_pcw/sign链接,加密参数为dim和sig,主要加密方式分别为RSA和HmacSHA1,这里面会涉及到一些环境值,其他的都固定即可,有两个值是从cookie拿的,都随机一下就行,主要代码如下:

function get_data(){guid1 = guid() //随机 找到相应方法名扣下来就行generateQC0051 = generateQC005() //随机 找到相应方法名扣下来就行var t = '{"jn":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36","cm":"zh-CN","gu":24,"uf":1.25,"jr":[1536,864],"di":[1536,824],"zp":-480,"uh":1,"sh":1,"he":1,"zo":1,"rv":"unknown","nx":"Win32","iw":"unknown","qm":["PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","Chrome PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","Chromium PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","Microsoft Edge PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","WebKit built-in PDF::Portable Document Format::application/pdf~pdf,text/pdf~pdf"],"fk":false,"rg":false,"xy":false,"jm":false,"ba":false,"tm":[0,false,false],"hl":false,"ht":"","au":true,"mi":"'+guid1+'","cl":"PCWEB","sv":"1.0","jg":"'+generateQC0051+'","ifm":[false,null,null,null],"ex":"","dv":"off"}';var dim = n(o(t));  //base64word = "" + dim + "PCWEB" + "1.0";sig = HmacSHA1_Encrypt(word, 'eade56028e252b77f7a0b8792e58b9cc').toUpperCase()return [dim,sig]
}

2、携带dfp访问login.action链接,加密参数为pwd,加密方式为RSA,网上也有很多博客是讲这个站的pwd的,所以略过

3、sbox_init_key链接,加密参数为secure,加密方式为RSA+SHA256,这个RSA我扣的办法是导出关键函数,加密位置如下

注意,这里会有两个随机字符串(f 和 s),这个我当时找了半天才找到,下面是他们的生成方式(这俩两个字符串是后面生成aeskey和hmackey的关键)

function getRandom(e) {var x = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];var t = (x = x || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])["length"];r = (new Date).getTime() + Math["ceil"](10 * Math["random"]() * x["length"]);for (var _ = "", i = 0; i < e; i++) {var n = Math["ceil"]((r = (9301 * r + 49297) % 233280) / 233280 * t) - 1;_ += x[n = t < (n = n < 0 ? 0 : n) ? t : n]}return _
}f = getRandom(32);c = getRandom(64);

4、访问initpage链接,这里的加密参数是 cryptSrcData和cryptVersion ,这里的加密会涉及到上面提到的aeskey和hmackey,加密位置如下:

cryptSrcData生成方式如下:

    extend = {"dfp":dfp,"ptid":"01010021010000000000","agentType":"1","deviceId":"....","cellphoneNumber":phone,"areaCode":"86"}var ee = {"t": time_,"token": token,"width": 290,"height": 170,"clientVersion": 1,"riskData": JSON.stringify(data), //这里是一些鼠标轨迹,稍微仿造一下即可"dfp": dfp,"extend": JSON.stringify(extend)};var e = AES_Encrypt(JSON.stringify(ee),aeskey,"qwertyuiopasdfgh");var cryptSrcData = e + "|" + HmacSHA256_Encrypt(e, hmackey);

cryptVersion生成方式如下:

cryptVersion = 'web|20180418xkdewxe3dkxu9|' + sid

5、拿到滑块数据后,发现是乱序的还得根据所放回的数组进行还原,还原主要思路如下:

至于这个pic_list是怎么来的,打个canvas断点去看下网站是怎么做的就知道了

三、请求验证
注:verifycenter/verify链接所需要的参数和initpage链接的基本一样的,只是轨迹那里需要变化,就不多说啦,这个站轨迹检测还是比较严格的,收工,拜拜!

爱qiyi滑块(2-23,js逆向)相关推荐

  1. 美团滑块(1-18,js逆向)

    网址:aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2NvdW50L3VuaXRpdmVsb2dpbg== 整体流程: 1.获取主页参数 2.逆向pwd.h5Fin ...

  2. 极验滑块4代js逆向

    极验4代滑块验证与三代相比少了底图还原,请求也便捷了很多,混淆还是ob混淆,大致上没啥变化. 滑动失败会重新返回两个包,一个是新的图片信息,另一个是加密js的地方.加密入口在,头发多的可以慢慢跟. 左 ...

  3. AST(抽象语法树)实战入门:js逆向中滑块加密if语句转化

    概述:AST 抽象语法树 实战 入门 案例 js逆向 js滑块 js加密 极验 瑞数 阿里滑块 5秒盾 ​引言: AST算得上是高端技能.如果把爬虫技能分为初中高三个阶段的话.常规的JS逆向找找参数, ...

  4. Js逆向教程17-极验滑块 实现加密算法的逻辑

    Js逆向教程17-极验滑块 实现加密算法的逻辑 还是和上节课一样,针对这个网址 https://www.geetest.com/demo/slide-float.html 一.加密算法的结果查看 计算 ...

  5. 【JS 逆向百例】吾爱破解2022春节解题领红包之番外篇 Web 中级题解

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 逆向目标 本次逆向的目标来源于吾爱破解 2022 春节解题领红包之番外篇 Web 中级题,吾爱破解每年都会有派送红包活动(送吾爱 ...

  6. 爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?

    本次目标是抠出爱奇艺passwd加密JS代码,如果你看到了这一篇,说明你对JS逆向感兴趣,如果是初学者,那不妨再看看我之前的一些文章,可能对你的学习路有些帮助,跟着一起调试,对JS加密方法理解会更深点 ...

  7. 纯js逆向淘宝阿里云滑块破解

    小小淘宝的滑块风控也敢班门弄斧,纯js逆向直接安排

  8. 凡科网JS逆向后跳出的滑块验证(base64图片解码之后的破解滑块验证)

    目录 1.前提和大概思路概述 2. 转换思路selenium和验证滑块图片的获取处理 3.总结 1.前提和大概思路概述 只是学习的途中有一些新的发现,分享给大家,希望对你们有帮助. 凡科网的JS逆向的 ...

  9. 12.10 快手 滑块js逆向 did 设备注册 滑块验证 技术交流

    某手滑块 js逆向 did设备注册参数 高通过率 技术向探讨 需要学习交流的可以联系我 技术讨论不构成任何违法行为,如有造成任何不良影响联系删除

最新文章

  1. GitHub标星10,000+,Apache项目ShardingSphere的开源之路
  2. L2.五.input语句
  3. 小猿圈web前端之移动端Vue+Vant实现上传压缩旋转图片功能
  4. 搜狗浏览器挡住了任务栏,上下显示不全
  5. html设置列表菜单,css 列表菜单的设计
  6. Boost:双图和boost assign的测试程序
  7. Docker系列(一):容器监控工具Weave Scope安装
  8. jQuery Mobile和UI合并组新项目,这波能赢么?
  9. Juniper SRX防火墙批量导入set格式配置
  10. linux下给qt4安装QSerialPort
  11. Java JDK 8的安装与配置
  12. 如何修改SAO用户密码
  13. 权重衰减(weight decay)与学习率衰减(learning rate decay)
  14. 清华天才王垠和阿里 P10 面试官赵海平神仙打架后,我们来说说技术面试中的该与不该!...
  15. ecno是什么的缩写_nbcs是什么意思的缩写?
  16. finecms V5 会员头像任意文件上传漏洞 附修复代码
  17. [翻译]《Programming - Principles and Practice Using C++, Second Edition》- Chapter 1
  18. 直方图均衡化高斯滤波
  19. nfcwriter下载 ios_iOS、iPadOS、macOS开启公测
  20. 【RMAN】增量备份学习与实践

热门文章

  1. 感恩前行 秀兰集团成立22周年庆典举办
  2. 建立卡巴斯基反病毒6.0“应急磁盘”相关故障以及解决
  3. java 适配器模式 详解(带电源插座适配 例子)
  4. verilog 流水线技术
  5. RNA-seq第四期——HTSeq-count对reads进行计数
  6. 申请发明专利的重要性和注意问题
  7. IC基础——CDC(单bit)
  8. 开车的十大误区,超级有用
  9. 携程国内机票token
  10. 手机屏幕旋转180度