极验4demo
aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
第一个接口逆向参数
搜索captcha_id
可以找到生成位置,可以看到challenge
就是一个uuid
继续搜索captchaId
发现是一个固定值,请求后可以拿到背景和滑块地址以及下一个接口要用到的数据
第二个接口
只有这个w参数,搜索w:
即可定位到
w的生成位置
进去就能看到主要是对_ᖀᖉᕿᕷ
字符串进行加密,_ᕺᕺᖗᕹ
这个就是之前3代那个4个随机长度为4的字符串拼接
_
是RSA加密 u
是AES加密
然后就是找加密数据了,顺着_ᖀᖉᕿᕷ
加密的地方往上看就能找到em,gee_guard,s3dA
的生成位置,直接写死即可,另外还有一个动态键值对a,后面在看
setLeft
是滑动距离
passtime
是滑动时间(可写死)
_ᕴᖁᖄᕵ[_ᖁᕷᕶᕾ(1486)]
固定值
接着就是找pow_msg
和pow_sign
通过搜索_ᖁᕷᕶᕾ(446)
,观察后就能发现一个是赋值options
的地方,另一个看的时候pow_msg
和pow_sign
已经赋值上了,因此往上a。(或者直接搜pow_msg
一个个打上断点看也行)
ᖈᕸᕶᖚ
就是最后生成的pow_msg
和pow_sign
pow_sign=md5(pow_msg)
var _ᕴᖁᖄᕵ = a[_ᖀᕹᖃᖚ(446)]
, _ᖗᕺᖙᖉ = _ᕴᖁᖄᕵ[_ᖀᕹᖃᖚ(562)] // pow_detail
, _ᖘᖆᕶᕴ = _ᕴᖁᖄᕵ[_ᖀᕿᖚᖘ(422)] // lot_number
, _ᖂᖘᕾᖘ = _ᕴᖁᖄᕵ[_ᖀᕿᖚᖘ(522)] // captcha_id
, _ᖈᕸᕶᖚ = (0,_ᕺᕷᖃᖘ[_ᖀᕹᖃᖚ(9)])(_ᖘᖆᕶᕴ, _ᖂᖘᕾᖘ, _ᖗᕺᖙᖉ[_ᖀᕿᖚᖘ(500)], _ᖗᕺᖙᖉ[_ᖀᕿᖚᖘ(509)], _ᖗᕺᖙᖉ[_ᖀᕿᖚᖘ(551)], _ᖗᕺᖙᖉ[_ᖀᕿᖚᖘ(588)], _ᖀᕿᖚᖘ(46))
最后就只剩那个动态的键值对了,主要就是这两个地方,第一个地方生成数组,第二个地方负责切割,代码可以扣下来,就能生成,值和lot_number
相关。(后面多次生产观察发现,其实就是那个window[_ᖁᕷᕶᕾ(31)][_ᕴᖁᖄᕵ(52)]
这个地方得到的三个数组切割lot_number
得到的)