极验四代滑块验证码
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【小马哥逆向】联系作者立即删除!
某验流程
- 目标:极验四代滑块验证码,w 参数逆向
- 主页:
aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v
- 加密算法:RSA、AES
流程分析
进入网页后,打开开发者人员工具进行抓包,点击滑动拼图验证,滑动滑块,抓包到 verify?callback=geetest\_,包含了一些参数:
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可以直接搜索
lot\_number,process\_token,payload
lot\_number搜索值b0552010c71f48a68acb6dda6609a1f8,发现是在load?处生成
其中lot\_number,process\_token,payload都是load?返回的
分析load接口
captcha\_id:验证码 id,固定值;
challenge:动态变化;
client\_type:表示 web 端;
risk\_type:验证码类型,例如滑块为 slide,无感为 ai;
lang:语言;
callback:geetest\_ + 时间戳,主要作用是防止缓存。
captcha\_id上面已经得到,现在找challenge
可以看到,challenge 参数的值由 uuid 函数生成,扣出即可。
w
打下断点滑动滑块断住后,向上跟栈到 ,到"\u0077": r,"\u0077" 即字母 w 的 Unicode 值,i 即 w 参数的值:
向上跟栈,找到 e 参数中各部分定义生成的位置
passtime 是熟悉的滑动时间和轨迹,setLeft 为识别出来的缺口距离,userresponse,a 为 setLeft 参数的值 t[$\_FFEIS(1473)] 为定值1.0059466666666665
这里是生成
"\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
device\_id 的值其实是不变的,但是寻找一下他的生成位置
pow\_msg 值 和 pow\_sign 值的生成
通过挂载代理的方式,可以发现,他只取了 s 的options 中的 pt, 所以只需要补 {“options”:{“pt”: “1”}} 即可 ;并未校验滑动轨迹
结果
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。