某讯滑块协议分析

某讯滑动验证码协议分析

在这里插入图片描述
一如既往的先抓包。
在这里插入图片描述
这是其登录接口,登录接口中的这个值通过搜索可以发现,它是滑块认证成功后才返回的。
在这里插入图片描述
所以,今天主要就是分析这个接口。
这个接口的参数多达39个。以下是此接口部分截图
在这里插入图片描述
虽然参数很多,但是大部分都是无用参数,可固定,有些参数在其它接口也能直接找到。真正需要分析,需要计算的,也就只有5个左右。
其中 acaecd 这个参数跟滑动轨迹有关。 这个key的名字,也就是acaecd并不是固定的,它这个键也是从其它接口中返回的。我们重点分析这个参数的值。

控制台直接搜索这个接口便可直接定位到相关代码
在这里插入图片描述
在这里插入图片描述
接口参数一目了然,其中我们要分析的参数就在红框的地方生成的。继续跟进去。
在这里插入图片描述
它这里会先判断有无这个函数,如果有继续调用r.getData(!0).继续跟进。
在这里插入图片描述
一进去会发现这个大的函数。 可以在红框下方打断点,观察这个函数生成的值。
在这里插入图片描述
可以发现t中的cd这个值跟我们最后想要的值已经很接近了,可以先记录下来。至于它怎么生成这一长串的,目前并不清楚。
在这里插入图片描述
这里cd的那一长串字符赋值给c。 后面又进行了一些操作。重点在操作u的那几行。直接跳过去看。
在这里插入图片描述
u也是从t中取得,此处的一些混淆可以直接替换掉,如果你清楚是在干嘛的话,也可以不替换。这里在对u进行截取。这里其实我们也不用怎么关心。直接看下面一行加密部分。
在这里插入图片描述
我们可以看到这个函数对u进行了加密。下一步又和前面生成的那一长串拼接起来了。我们可以记录下这个值。后面通过抓包对比,发现最后生成的结果确实是这两个部分拼接起来的值。
接下来我们就着重分析下这个后面的加密函数。
在这里插入图片描述
这个函数就是做了一层包装,其实U是真正执行的函数,u当成参数传进去。
追到U函数里面去。
在这里插入图片描述
前面是一大堆定义变量,直接拉到函数末尾。
在这里插入图片描述
关键点就在这里,其中我已经把这里的混淆美化过了。一些加密的点,直接替换掉了,方便分析
解读一下这里的代码。
这里就是一个for循环,结束条件是 c<n.length,(别问我直接知道的,鼠标放上去,你就能看到函数的作用了),每次 c+=8;
这里我们监控一下n的值,以及它生成的结果。
在这里插入图片描述
加密前的明文 和 加密后的结果一览无余。
其中_0x5b382a这个函数是真正加密的函数, _0x12407f这个函数以及 _0x1a3bcd这两个函数对原字符串做了一些变换。
在这里插入图片描述
我对这个函数进行了相关美化。把它用python复现就是这样
在这里插入图片描述
这里加try的原因是有时候参数n的值不满4位会报错。在js中并不会报数组越界异常。

_0x1a3bcd 美化后的js函数
在这里插入图片描述
python还原的话直接把这部分用js2py调用,其中里面的c,u,r,e,o等都是固定值。因为js中的位移以及抑或操作跟python中有点不太一样,有点坑,为了保险起见直接用js2py调用即可。
在这里插入图片描述
最后的加密函数 _0x5b382a
在这里插入图片描述
python还原后
在这里插入图片描述
加密过程的话就围绕前面的那个for循环串起来就可以了。

我们可以看到整个过程加密了这些值。上一行是加密结果,下一行是加密的值
在这里插入图片描述
其中右下角slideValue这个值是我们的滑块轨迹信息。其它的参数大多可以固定部分需要随机变化。
观察轨迹整个数组,发现只有第一组数字比较大。比较特殊,可单独生成。
找规律第一组数猜测是 其实点击的坐标点, x坐标,y坐标,第三个数是相对时间。可以随机。但是不要太大,在这个值附近随机就可以了。
从第一组数往后都是相对偏移。拿一组数举例子
[1,0,6] 1,是相对上一次移动的横坐标距离,0是相对上一次移动的纵坐标距离,6是相对上一次移动的时间差。
整个过程中我发现x的前面部分的值一直在0、1、2几个数之间变化,后面部分放缓在0和1之间变化。
y值则可以一直固定为0不变。相对时间的话也是前面数值比较小,后面数值比较大。数值越小说明移动的越快,越大说明移动的越慢。
我们把数组中的第一个数全部加起来发现,这个数是要大于缺口距离的,比原先多了40。这里的40其实是滑块的宽度,也就是说它的计算值是到滑块右侧的距离。
如图所示
在这里插入图片描述
整个加起来的距离其实是这个距离。

成功获取ticket:
在这里插入图片描述

注意点:
1. 图片识别缺口,完事以后注意网页缩放问题。
2. 美化代码以及替换代码注意修改完毕及时校验。
3. 有些参数在控制台搜不到,建议在charles等抓包工具中搜索。
4. js中的位移以及异或运算使用python复现有些坑,建议直接使用js2py等库执行js

彩蛋:
某讯的滑块协议好像存在漏洞,不需要滑也能直接获取ticket。

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值