极验四代滑块验证码

声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【小马哥逆向】联系作者立即删除!
某验流程

image

  • 目标:极验四代滑块验证码,w 参数逆向
  • 主页:aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v
  • 加密算法:RSA、AES
流程分析

进入网页后,打开开发者人员工具进行抓包,点击滑动拼图验证,滑动滑块,抓包到 verify?callback=geetest\_,包含了一些参数:

image

captcha\_id:验证码 id,固定值;

client\_type:表示 web 端;

lot\_number;

risk\_type:验证码类型,例如滑块为 slide,无感为 ai;

payload;

process\_token;

w:加密参数,由轨迹、滑动时间、滑动距离、userresponse、device\_id、pow\_msg 等参数加密得到;

callback:geetest\_ + 时间戳,主要作用是防止缓存。

其中重要的有captcha\_id,lot\_number,process\_token,payload,w

captcha\_id

captcha\_id可以直接搜索

image

image

lot\_number,process\_token,payload

lot\_number搜索值b0552010c71f48a68acb6dda6609a1f8,发现是在load?处生成

image

其中lot\_number,process\_token,payload都是load?返回的

image

分析load接口

image

captcha\_id:验证码 id,固定值;

challenge:动态变化;

client\_type:表示 web 端;

risk\_type:验证码类型,例如滑块为 slide,无感为 ai;

lang:语言;

callback:geetest\_ + 时间戳,主要作用是防止缓存。

captcha\_id上面已经得到,现在找challenge

image

可以看到,challenge 参数的值由 uuid 函数生成,扣出即可。

image

w

打下断点滑动滑块断住后,向上跟栈到 ,到"\u0077": r,"\u0077" 即字母 w 的 Unicode 值,i 即 w 参数的值:

image

image

向上跟栈,找到 e 参数中各部分定义生成的位置

image

passtime 是熟悉的滑动时间和轨迹,setLeft 为识别出来的缺口距离,userresponse,a 为 setLeft 参数的值  t[$\_FFEIS(1473)] 为定值1.0059466666666665

这里是生成

image

"\u0070\u006f\u0077\u005f\u0073\u0069\u0067\u006e":pow\_sign

"\u0070\u006f\u0077\u005f\u006d\u0073\u0067":pow\_msg

"\u006c\u006f\u0074\u005f\u006e\u0075\u006d\u0062\u0065\u0072":device\_id

"\u0064\u0065\u0076\u0069\u0063\u0065\u005f\u0069\u0064":lot\_number

image

device\_id 的值其实是不变的,但是寻找一下他的生成位置

image

pow\_msg 值 和 pow\_sign 值的生成

image

通过挂载代理的方式,可以发现,他只取了 s 的options 中的 pt, 所以只需要补 {“options”:{“pt”: “1”}} 即可 ;并未校验滑动轨迹

image

结果

image

本文由mdnice多平台发布


小马哥逆向
1 声望1 粉丝