赞
踩
首先打开抓包工具或者f12控制台,然后手动滑动,观察请求包的信息。
我们发现这是个get请求,下面具体看下它的请求参数
其中响应里的validate就是我们后面处理登录,需要用到的参数。只有滑动成功,才会返回值。
我们看下请求参数中,其中大多数参数可以固定不变。只有4个参数需要我们破解。分别是id,token,acToken,data,cb。
通过多次滑动抓包,发现其中id参数也是固定值。token参数可以在请求滑块图片的时候找到。
接下来需要破解acToken。全局搜索acToken关键字
发现再其中有5处地方出现过。这里比较少,如果不确定是哪个位置的话,就再全部的位置打上断点,看它最终会停在哪里。
这里我直接通过静态分析,发现这边是个check接口,跟验证码的接口一致,我们断点直接打在这里。
通过动态调试,断点来到这里,继续分析
发现t.acToken在这里已经生成,并且这个t是通过参数传递过来的。这个时候我们应该追溯它的调用栈,看它原始生成的地方。
调用栈追到这里,发现已经追不动了,没有更详细的调用栈了,我们先断点打在这里,再追一下
发现这里断点处,acToken的值已经生成。右侧已经有了更详细的调用栈,我们继续向下追。
追到这里,再向下追,就看不到acToken的值了。我们再这一处的下一个调用栈的地方,下断点。
这里发现调用较复杂,不方便观察其中的值和结果。我们使用抓包工具替换掉原js文件,使用自己本地美化后的js继续调试。然后断点下在附近。
注释部分是原代码,下面是美化后的代码。发现在这里,tmp的值已经生成。是通过Xb这里方法生成的。
继续看Xb里面的方法是怎么生成的。
可以看到最后调用了Ea方法,去生成我们的acToken。待加密对象中的r,d,b三个值我们都可以找到它的来源。下面我们就导出Ea这个函数,看下本地js生成的值是否跟它生成的一致。
下面是导出内部函数的小技巧。
首先在全局定义一个变量。随意就好。
然后找到我们要导出的函数,比如说这里我们要导出Ea这个函数。那么我们首先找到Ea函数定义的地方,用这个全局变量指向Ea。那么我们就可以在函数外部去调用这个Ea方法。
接下来使用node,调用getEa这个方法,把参数带进去调试。
这里发现我们生成的值与网页生成的值是一致的。
到这里acToken的参数加密我们解决了,现在需要的就是找到刚才加密对象中d的值和b的值。 d的值在这里生成的。
b的值是传递进来的。在Xb函数附近,通过Wb函数生成的。
这里就不讲b和d的生成过程啦。调试技巧和刚才的一样,耐心一点,就能整出来。
同样,接口参数中cb的值也可以通过这种方式整出来。思路和获取acToken的值一样,比acToken的生成方式要简单一些。
我们要先检验一下自己生成的cb值和acToken能不能用。
检验方式有两种。
一种是通过抓包工具hook,把它要发的包拦截住,替换成我们自己本地修改的值。
第二种方式是在chrome断点调试中,修改它参数赋值的地方,改为我们自己生成的值。
这两个参数解决了,后面就只剩下data这个参数了。
data参数是一个json。其中又有3个加密参数等待我们解密。
这个放到下一篇再说。
总结一下本篇文章用到的小技巧。
我们全局搜索data,出现的地方很太多。我这里是直接搜m:""
其中只涉及到3个js文件.这里我们优先选择带版本号的js文件,可以看到这个版本号跟验证滑块接口中的版本号是一致的。
点进去直接继续搜索
整个js中就只有这一处。我们直接断点打在data身上。其中的d是滑块轨迹,p和ext分别是两个加密参数。
这里先分析d的值。
p函数加密n.join(":")的值就是滑块轨迹。 n应该是一个数组。n的生成位置在这里
其中this.traceData就是我们鼠标滑动的所产生的轨迹信息,其中的值是被加密了的。 u的值是50.
经过a.sample函数处理完,只剩下50个轨迹信息。
接下来分析this.traceData中的这些加密信息的含义。
搜索this.traceData我们可以看到大概就是这个位置。
可以看到跟滑块的x和y的坐标还有时间有关。最终用f函数做了一下加密处理。
我们这里不方便直接断点。因为,在此处断点,每动一下鼠标都要debug。我们要观察其中的值的变化规律的话,比较适合用console.log输出再控制台观看。
这里继续使用抓包工具替换js的形式,来方便我们打印输出。
控制台输出的值
可以很清除的看到我们滑动的轨迹信息。
第一个是横坐标的拖动距离,第二个是纵坐标上下浮动的距离,第三个是当前滑动的时间-开始滑动的时间。
下面讲一下轨迹生成的思路。这里我们只需要生成50个轨迹信息就行。
这里我们得到整个轨迹以后,把每步的轨迹用f函数进行加密。f函数的抽取过程可看前文,后面还有一些加密均可使用上述方式进行抽取,最后执行使用node或者js2py等工具即可。
最后贴一下最后结果。
注意点:
滑块缺口识别原理:https://mp.weixin.qq.com/s/xCnSupqdjzmnIM0GklEk_w
滑块缺口识别代码:https://github.com/crazyxw/SlideCrack
易盾滑块、点选升级很快,有需要可加Q2737499951私聊。
博客地址:https://blog.csdn.net/qq_41895190
QQ群:608591811(csdn)
易盾最新滑块、点字、无感知本地GPU识别库、鼠标轨迹js算法;极验3最新滑块、点字、无感知GPU识别库、识别轨迹js算法;腾讯QQ最新滑块、点字、登录识别库、本地GPU识别库、鼠标轨迹js算法;阿里最新滑块、点字、本地GPU识别库、鼠标轨迹js算法;百度2汉字、4汉字、贴吧九宫格、莱茨狗动态验证码本地识别库;有各种需要都可以
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。