吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8530|回复: 142
收起左侧

[Web逆向] 快手滑块轨迹分析

    [复制链接]
521105 发表于 2024-3-7 16:30
本帖最后由 521105 于 2024-3-7 18:06 编辑

本文仅学习参考,如有涉及侵权联系本人删除

如果有任何问题,欢迎交流指导

文章仅记录本人分析轨迹变异的过程,用真实轨迹进行缩放也能通过。

目标网址:aHR0cHM6Ly9saXZlLmt1YWlzaG91LmNvbS8=

一、确定目标

通过verifyParam快速定位到加密后的位置,然后看上一层作用域,能拿到加密前的轨迹文本

1

1

把轨迹的字符串取出,简单分析之后,可以判断轨迹包含x、y、time信息,每一组轨迹用“,”进行分割。稍微处理下,我们拿出x、time进行画图,从图中我们更能直观的观察轨迹变化。

2

2

可以发现,在这个正常的轨迹中,有几个轨迹点发生了变异,不正常的凸起。这也就是本文需要分析的点。

二、分析过程

1.轨迹分析

为了探究这几个点为什么发生了变异,就需要找到记录轨迹点的位置。

观察堆栈,发现三个有特殊含义的函数,dragEndCb、slideEnd、verifyCaptcha,分别进行下断点

image-20240218120249025.png

刷新页面,再次拖动滑块,可以看到变量r就是轨迹数组,并且有几个轨迹点是异常的

image-20240218120702458.png

并且在该断点的堆栈前两层还在while循环中,也分别打上日志点,如图所示

image-20240218141652166.png

image-20240218141652166-1.png

在该断点的上方,还出现了“dragStartCb”、“dragMoveCb”,也打上日志点

image-20240218141652166-2.png

通过分析日志,发现在第索引为3的函数中,传入了MouseEvent事件,随后开始了计算和取值

image-20240218143551370.png

image-20240218143628081.png

于是,在索引为3、长度为4的时候,进行debugger,尝试单步调试,跟踪代码运行逻辑

image-20240218143628081-1.png

在之后的单步调试中,发现了在大量while循环中,每次执行的结果都有push操作

image-20240218151257643.png

并且push方法是官方js代码实现的一个函数,在push方法中打上日志点

image-20240218151955736.png

此时结合轨迹和日志点进行分析,很清晰明了

image-20240218152900706.png

通过下面这一段日志,进行猜测分析和对比,可以得出以下结论:

  1. 取出clientX的值,与第一个轨迹点的clientX进行相减
  2. 拿相减之后的结果除固定值276得到一个小数
  3. 拿小数乘1000,并拿到他的整数部分即为最终的x的值

image-20240218153009849.png

同理,通过以下日志也可以分析出y值的计算方式:

​        取出clientY的值,减去固定值282.25再取整数部分

image-20240218153533233.png

2.变异点的分析(A)

正常的轨迹点的计算方式找到了,下一步就是找为什么有的轨迹点会发生变异。根据/rest/zt/captcha/sliding/config返回的信息,可以分为两种情况讨论,本小点针对返回值中存在q值进行分析。

快速在日志中定位到变异点的位置

image-20240218154227174.png

为了方便观察,我这里截取了索引为29的轨迹点、索引30的变异点的日志。对比发现,变异的轨迹点也是正常执行了上方的计算,随后进行了某个判断,当判断值为true的时候,会进行额外的操作,也就是产生了文章所说的变异点。

image-20240218160633176.png

细心的可以发现,这个true猜测应该是轨迹长度+1之后与31进行了判断,当轨迹长度+1等于31之后,就会发生变异,同时回过头看/rest/zt/captcha/sliding/config这个接口返回的信息中,也有个a的值为30,在经过运算过得到了31。也就是轨迹长度等于a+1的时候为第一个变异点(这个a+1仅是多次测试的结论,没有实际进行跟栈观察)

image-20240218162449592.png

变异前的轨迹点为:[456, 13, 1708242093525]

变异后的轨迹点为:[1009, 147, 1708242093525]

继续分析true之后的日志,也能通过猜测得出结论:

​        *1009 = 456 sx + ix**

​        *147 =  13 sy + iy**

sx、sy、ix、iy都是接口返回,如下图所示

image-20240218163251464.png

继续观察后续日志,(由于时间关系,此次日志与上文日志非同一份),分析后续变异点的规律。

其中2.258983396379993、30都是接口返回,分别为qa,根据日志也可以猜测得出下个点的计算方式为:

​        Math.floor(Math.pow(q, 变异次数) + a)

image-20240218171257067.png

3.变异点的分析(B)

本小点针对返回值中存在d值进行分析。

当接口返回数据存在d值,要简单很多。

image-20240218171727193.png

通过观察轨迹,就能发现,当轨迹长度等于a值,发生第一次变异,之后每间隔d值发生变异,如下图所示,分别在轨迹长度12、25(12+13)、38(25+13)发生了变异,变异值的计算方式与上文相同。

image-20240218171931537.png

三、验证

针对轨迹这一块,是由算法生成的,优化下轨迹算法表现可能会更好。在本次测试中,分别进行了200次、500次、1000次测试,测试环境为不同IP、环境指纹部分随机的情况下连续进行,仅统计验证通过和因轨迹失败的结果,忽略缺口识别错误导致的失败,结果如下:

统计次数 通过率
200 99.5%
500 98.2%
1000 93.8%

image-20240218172716139.png
image-20240218172740825.png
image-20240218172807016.png

免费评分

参与人数 40威望 +2 吾爱币 +134 热心值 +30 收起 理由
shawndanger + 1 我很赞同!
orcus + 1 历害
AUBRO + 1 我很赞同!
abcdqew + 1 用心讨论,共获提升!
daofengyi + 1 谢谢@Thanks!
chermy + 2 + 1 已经处理,感谢您对吾爱破解论坛的支持!
pj20240313 + 1 谢谢@Thanks!
nanfeng147 + 1 谢谢@Thanks!
redfanghua + 1 + 1 很好的技术贴!
a3101517 + 1 + 1 谢谢@Thanks!
抱歉、 + 1 用心讨论,共获提升!
Voccoo + 1 + 1 用心讨论,共获提升!
caly82529 + 1 + 1 看了几遍,也没法上手😭😭😭
修罗本灭世 + 1 + 1 谢谢@Thanks!
xmgjsunfei + 1 + 1 用心讨论,共获提升!
mtwen + 1 谢谢@Thanks!
windboy3729 + 1 + 1 我很赞同!
antonylad + 1 用心讨论,共获提升!
shuiangao + 1 用心讨论,共获提升!
jjdengjianjian + 1 用心讨论,共获提升!
YGTQ + 1 我很赞同!
Liangjaixi10 + 1 很专业,大有所获
weiliam + 1 用心讨论,共获提升!
uuwatch + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Yangzaipython + 1 鼓励转贴优秀软件安全工具和文档!
dxiaolong + 1 + 1 用心讨论,共获提升!
FDE9 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
3lizabeth + 1 + 1 用心讨论,共获提升!
timeslover + 2 + 1 我很赞同!
涛之雨 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lovetozmx + 1 谢谢@Thanks!
amouer + 1 + 1 用心讨论,共获提升!
知心 + 2 + 1 用心讨论,共获提升!
Aaron152 + 1 用心讨论,共获提升!
BonnieRan + 1 + 1 谢谢@Thanks!
theStyx + 2 + 1 用心讨论,共获提升!
RiiiickSandes + 1 用心讨论,共获提升!
Yifan2007 + 2 + 1 用心讨论,共获提升!
liuxuming3303 + 1 + 1 用心讨论,共获提升!
Jack + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 521105 发表于 2024-3-12 18:38
uuwatch 发表于 2024-3-12 15:16
已收藏,有空研究下这个did的使用时长

23.png

不要漏流程,did基本上都能用。我这里请求用户主页,通过判断响应中是否包含用户的个性签名来校验did,197次did 196次可用
xianningning 发表于 2024-3-7 19:50
nitian0963 发表于 2024-3-8 16:02
头像被屏蔽
moruye 发表于 2024-3-7 20:35
提示: 作者被禁止或删除 内容自动屏蔽
yangbo616599 发表于 2024-3-7 22:17
看了个寂寞
zhu2023 发表于 2024-3-7 23:11
能运用到游戏上的滑块验证码
BonnieRan 发表于 2024-3-8 02:57
还有这样的轨迹生成方式,学习了
xiaoyu0320 发表于 2024-3-8 04:35
感谢分享!!
wfghim 发表于 2024-3-8 09:14
看了个寂寞啊,脑瓜子没看懂
yan20180721 发表于 2024-3-8 11:05
我也没看懂呀
六月飞雪 发表于 2024-3-8 11:07
太高深了,荏是没有笼懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 21:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表