滑块系列③--某花顺滑块分析

文章记录了解决某网站滑块验证码的过程,包括获取ticket参数、分析JS请求参数、利用两张图片计算滑动距离以及简单的Python实现。作者强调这只是针对滑块验证码的一种处理方法,未涉及全部登录请求参数。
摘要由CSDN通过智能技术生成

1.简单记录一下一些学习过程

来源: aHR0cHM6Ly91cGFzcy4xMGpxa2EuY29tLmNuL2xvZ2lu
目的: 考虑经常性的忘记一些学习资料和文件,故在网络上记录一下。
本文仅限个人学习使用。

2.结果

在这里插入图片描述
返回 “msg”:“ok” 即为处理成功。

3.网页代码分析

在 登录请求的时候参数captcha_ticket:  是根据滑块请求成功后ticket参数获取得到的。
verify({"code":0,"msg":"ok","ticket":"53ac131f79765f48287b773b5abdc5b2"})
其他较长的参数应该是通过rsa 加密处理的(没有验证,查看uname 发现是rsa加密处理),
uname,passwd,passwdSalt,这里不继续深究,本文主要是针对学习滑块相关的内容。

其实本文基本不需要太多的js逆向分析,主要通过两个js 请求就可以请求到。

(1) 第一个js 请求,请求链接包含getPreHandle关键字。
这个js 文件直接请求就可以了,

rmd = (time.time()*1000)*random.random()
url = f'https://xxxxxx/getPreHandle?captcha_type=4&appid=registernew&random={rmd}&callback=PreHandle'
这里对random 这个参数根据随机值与时间戳的乘积处理,便可以直接请求。

返回结果:

PreHandle({"data":
	{"src1":"getImg",
	"src2":"getTicket",
	"sign":"c4ca971cc1d8b73993c002d2e04d49bf",
"urlParams":"rand=851555113&time=1692284498.0641&appid=registernew&captcha_type=4&signature=c4ca971cc1d8b73993c002d2e04d49bf",
	"problem":"","imgs":["4815366c6861f1c2","38ff2f08ed633f8a"],
	"initx":60,"inity":75},
"code":0,
"msg":"ok"})

对其进行正则匹配和获取相关的参数值,主要包括 inity,urlParams,imgs三个参数。
(2)对第二个js文件获取

rand: 1362236470         // 第一次js  urlParams请求获取
time: 1692285557.9623    //  第一次js  urlParams请求获取
appid: registernew      //  第一次js  urlParams请求获取
captcha_type: 4         //  第一次js  urlParams请求获取
signature:              //  第一次js  urlParams请求获取
phrase: 211;56.34705882352941;309;177.22058823529412
callback: verify	   // 第一次js  urlParams请求获取

通过分析发现,除了phrase 参数,其他都是通过第一次请求后获取的。
(3)分析phrase
通过搜索 phrase 关键字,打断点分析。
在这里插入图片描述
从上图可以看出,phrase 参数主要由(x) + “;” + inity + “;” + opt.width + “;” + opt.height 构成
其中

 opt.width + ";" + opt.height  
 // 可直接写死。

分析 inity :
直接在当前的js 文件搜索,得到,
在这里插入图片描述
①data.data.inity 就是第一次js 请求后返回的inity参数,opt.height 可固定,便可以计算出inity 值

② x的分析:通过分析发现,在这里插入图片描述

verify 函数中的x,t 参数分别对应 滑块滑动的距离与滑动时间。t 参数请求中没有涉及,后面的日志处理有使用(忽略)
针对滑动距离,因此只需要计算目标滑块和背景图即可。
通过第一次js 请求中的imgs 中的两个值拼接即可,imgs 中的第一个值为背景图,第二个值为滑块图。如:“imgs”:[“4815366c6861f1c2”(背景图) ,“38ff2f08ed633f8a” (目标图)]

 targer = res["data"]['imgs'][1]
 background = res["data"]['imgs'][0]
 urlParams = res['data']['urlParams']
 targer_url = f'https://captcha.10jqka.com.cn/getImg?{urlParams}&iuk={targer}'
 background_url = f'https://captcha.10jqka.com.cn/getImg?{urlParams}&iuk={background}'

通过两张图片便可以得到距离。
到这里分析便结束了。整理代码,使用Python 便可以直接请求了。

4.总结

(1)本文只是针对出现的滑块进行分析请求处理,并没有分析登录请求中的其他参数,这也不是本文的目的。
(2)相对来说这个也比较简单,比滑块系列②简单。后续还会继续记录其他相关的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值