h参数分析
先分析o参数
userresponse参数
passtime参数
aa参数
h9s9参数
rp参数
l参数
h参数
u参数分析
现在已经生成了两次w还差最后一个滑块的,滑块的js文件和前两次的不一样是slide.7.9.3.js,但是代码流程差不多,基本是一样的
ast解混淆后还是定位"w"
这里是h + u
h参数分析
代码上面直接能看到h参数
l = V["encrypt"](yt["stringify"](o), r["$_CCEp"]()) h = m["$_FEu"](l)先分析o参数
在上面可以定位到o是怎么生成的
userresponse参数
传递了两个值t和challenge,challenge已经见过很多次了这里不多说是什么值了,主要是t参数
查找t是怎么生成的
这里很明了就能看出来_是获取的x坐标,然后取整获取到的
passtime参数
这个值生成是一个时间戳相减n["$_CEDS"] = $_Im() - n["$_CHJt"]
function $_Im() { return new Date()["getTime"](); }后面时间戳生成的位置
可以理解成这个时间戳是滑动滑块到松手的时间,这个时间需要和轨迹对应起来
aa参数
查找堆栈可以看到
l = n["$_CICC"]["$_BBEl"](n["$_CICC"]["$_FDd"](), n["$_CJQ"]["c"], n["$_CJQ"]["s"])里面有三个参数n["$_CICC"]["$_FDd"]()、n["$_CJQ"]["c"]、n["$_CJQ"]["s"]
这里后面两个分别就是c和s主要看第一个参数
跟踪堆栈可以看到这里是处理鼠标轨迹的地方
这里却啥拿啥就行,最后生成的值不知道对不对就拿浏览器的值对比一下
l也是缺啥拿啥
h9s9参数
这个参数值其实可以写死,跟踪定位到Rbfk(StJC[EMVm(52)]() + Rbfk(Rbfk[EMVm(52)]())) + EMVm(38);
这里三个参数都是固定的所以返回值肯定也是固定的,这里前两个和之前一样都是获取源代码然后经过计算最后得到一个数字,里面没有取环境也没有随机数所以写死就行,也就不需要扣了
后面还有一个随机数生成的这里需要补一下
rp参数
o["rp"] = X(i["gt"] + i["challenge"]["slice"](0, 32) + o["passtime"]);
这个很简单了
l参数
l = V["encrypt"](yt["stringify"](o), r["$_CCEp"]())
h参数
h = m["$_FEu"](l)
l和h补一下就行没什么难的
u参数分析
u = r["$_CCDh"]()跟进去可以看到就是一个加密随机数的方法
this["$_CCEp"](t)跟进去可以看到
rt就是随机数
最主要的是轨迹,有可能会出现返回{'success': 0, 'message': 'forbidden'}的情况这种一般都是轨迹不行,稍微修改修改就可以,不算是很难如果说返回{'success': 0, 'message': 'fail'}一般都是图片滑块的匹配有问题或者算法扣的不对
这里有一个坑,返回的图片和识别好的图片x开始计算的位置是不一样的所以识别出x的位置后需要减一个差值,这里就不多说了手动计算一下图片的缺口距离就知道了
最后成功的话会返回一个validate的值