iqiyi滑块

(技术纯属自己瞎研究,其他啥事与我无关!)*

最近在某论坛看见很多人都在搞iqiyi的滑块就和朋友一起研究了一下,觉得很有意思就想给大家分析一下iqiyi滑块的流程。

1.流程
第一步:请求sign接口获取dfp参数
第二步:请求login.action接口看是否需要弹出滑块,如果需要就要获取token
第三步:请求sbox_init_key接口获取sig,sid,sr三个参数
第四步:请求nitpage接口获取滑块数据
第五步:模拟轨迹参数请求verify接口获取token

iqiyi大概流程就是这样里面涉及的坑非常多。需要耐心调试。

2.dfp参数的获取主要是在这里插入图片描述加密参数主要是dim和sig
dim是base64加密一个数组,数组成员里涉及canvas和canvas的配置和一些cookie
sign就是一个256加密
这个加密接口不难 就不做过多分析,慢慢调试就行

3,在这里插入图片描述
获取si个,sid,sr的时候需要secure这个参数 ,这个参数是由web+版本号+rsa(aes秘钥生成需要的随机数)+hmac256(web+版本号++rsa(aes秘钥生成需要的随机数))

里面涉及两个非常重要的随机数 不管是aes的key还是hmac256的key都是由着两个随机数生成的

4,
在这里插入图片描述
请求滑块数据需要这两个参数 ,第二个就是web+版本号+上一步返回的sid
,第一个参数是由
在这里插入图片描述
aeskey和hmackey是由前面两个随机数生成的
返回回来的数据需要用aes解密才能看见滑块的链接和偏移

5 .图片的还原
{“code”:“A00000”,“msg”:“成功”,“data”:{“autoResult”:null,“captchaType”:“slidecode”,“initData”:{“token”:“888a419a8bda40ccb0cbc8443f719b5f”,“autoResult”:null,“captchaType”:“slidecode”,“sourceType”:“unUse”,“secondVerify”:null,“secondToken”:null,“secodVerify”:null,“secodToken”:null,“imageBgUrl”:"/api/outer/image/bg/888a419a8bda40ccb0cbc8443f719b5f9376d91051224cca8af41b3e67e4d963.jpg",“imageBlockOffset”:[[{“t1”:13,“t2”:0},{“t1”:7,“t2”:0},{“t1”:15,“t2”:0},{“t1”:2,“t2”:0},{“t1”:9,“t2”:0},{“t1”:12,“t2”:0},{“t1”:10,“t2”:0},{“t1”:5,“t2”:0},{“t1”:14,“t2”:0},{“t1”:6,“t2”:0},{“t1”:19,“t2”:0},{“t1”:1,“t2”:0},{“t1”:17,“t2”:0},{“t1”:11,“t2”:0},{“t1”:4,“t2”:0},{“t1”:8,“t2”:0},{“t1”:18,“t2”:0},{“t1”:0,“t2”:0},{“t1”:16,“t2”:0},{“t1”:3,“t2”:0}],[{“t1”:3,“t2”:1},{“t1”:2,“t2”:1},{“t1”:19,“t2”:1},{“t1”:8,“t2”:1},{“t1”:5,“t2”:1},{“t1”:10,“t2”:1},{“t1”:7,“t2”:1},{“t1”:9,“t2”:1},{“t1”:11,“t2”:1},{“t1”:18,“t2”:1},{“t1”:14,“t2”:1},{“t1”:12,“t2”:1},{“t1”:4,“t2”:1},{“t1”:0,“t2”:1},{“t1”:6,“t2”:1},{“t1”:13,“t2”:1},{“t1”:1,“t2”:1},{“t1”:17,“t2”:1},{“t1”:15,“t2”:1},{“t1”:16,“t2”:1}]],“imageWidth”:290,“imageHeight”:170,“imageBlockPerWidth”:14,“imageBlockPerHeight”:85,“iconUrl”:"/api/outer/image/icon/888a419a8bda40ccb0cbc8443f719b5f9376d91051224cca8af41b3e67e4d963.png",“iconWidth”:56,“iconHeight”:56,“iconYOffset”:28},“availableCaptchaList”:[]}}

上面aes解开大概是这个json数据 里面有img的url,img的还原的偏移,等等
数据里的imageBlockOffset"需要经过在这里插入图片描述
js解密才能看见真实还原的坐标
[42, 14, 136, 220, 164, 206, 192, 122, 108, 178, 234, 0, 276, 262, 70, 248, 28, 150, 56, 84, 140, 56, 84, 28, 42, 154, 112, 0, 262, 182, 196, 126, 224, 210, 70, 14, 98, 168, 276, 238]

前20位是还原上半部的后20位是还原下半部的
在这里插入图片描述
在这里插入图片描述
还原后大概是这样的

6,,模拟轨迹提交参数
加密方法和上面基本一样主要是轨迹生成 ,这里就不做更多的分析了
在这里插入图片描述

7,
在这里插入图片描述
其他没什么大问题了,坑就在于两个随机数和照片还原和轨迹的偏移
返回A00000就是成功。

今天分析就到这儿了
拜拜

发布了6 篇原创文章 · 获赞 32 · 访问量 1524

猜你喜欢

转载自blog.csdn.net/qq_41927995/article/details/105068719