某网站登陆滑块逆向-3
本文最后更新于:2025年7月10日 下午
目标:aHR0cHM6Ly9pLmVhc3Rtb25leS5jb20vd2Vic2l0ZWNhcHRjaGEvc2xpZGVydmFsaWQ=
参考文章,直接给了一个滑块的地址,不错的,可以直接分析
初步调试
初步调试发现首先会获取contextid
这个参数,

然后get
请求就是获取图片地址的请求,

查看get
请求的启动器,打上断点,逐步调试

发现这里有获取浏览器cookie
的操作,名为qgqp_b_id

可以发现getcontextid
请求里带上的browserid
就是上面获取的qgqp_b_id

核心部分
继续调试发现找到了get
请求发出的地方:

发出的加密request
参数的明文是如下这样组成的,这里变动的其实只有ctxid
和r
,其他似乎和版本以及测试账号有关
1 |
|
再往下走,就是分析加密方法了

将加密代码发给GPT
,推断为XXTEA
算法,故验证如下
直接调用JS
接口加密结果:

某网站加密结果:

现在可以确认采用了XXTEA
算法进行加密
cookie生成
在编写代码时发现cookie
不能通过request
请求得到,发现是由客户端生成,全局搜索qgqp_b_id
,发现其生成逻辑:
e
是一个长度为 20 的字符串。第一个字符是一个 1 到 9 的随机数字(由Math.floor(9 * Math.random() + 1)
生成),接下来的 19 个字符是 0 到 8 的随机数字(由Math.floor(9 * Math.random())
生成)。- 最终生成的字符串类似
2 + "345678910111213..."
,也就是说一个以 1-9 开头,后面跟随 19 个 0-8 的数字的字符串。
设置 cookies
:
- 使用
o.set("qgqp_b_id", e, 1e4, ".eastmoney.com")
将生成的e
存入名为qgqp_b_id
的 cookie 中,并设置过期时间为1e4
(即 10,000 秒,约为 2.8 小时),作用域为.eastmoney.com
。 - 如果当前的
hostname
包含dingqibao.com.cn
或dingqibao.cn
,还会在相应的域名下设置相同的 cookie。

背景图还原
发现返回的背景图是经过切割后的图片并且没有后续请求进行还原,那么说明是客户端进行还原并显示的。再接收到图片地址请求成功后,我们逐步调试到如下位置,发现DecodeImg
方法,

进入k
方法,

下面就是背景图还原的方法,经过多次调试发现数组a
是一组定值,那么切片位置的还原就依赖于下面的代码:
1 |
|

根据实际值用py
给出复原代码,注意网站前端将图片缩放为260*160
1 |
|
下面是复原的图片,略有瑕疵

滑动轨迹
打上断点,手动滑动滑块。得到发送的轨迹数据,格式为x1,y1,t1:x2,y2,t2
,

1 |
|
需要自己补充的字段包括ctxid
、u
滑动距离、d
滑动轨迹数据、t
滑动时间、r
随机数,
用三阶贝塞尔曲线生成轨迹:
1 |
|
最后通过验证:
