某验滑块加解密逻辑

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除,请各位自觉遵守相关法律法规。

开始

上地址:aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v

1、获取滑块数据

刷新页面,load接口为获取滑块数据和后续使用数据。

请求参数:

callback=xxxxxxxx&captcha_id=54088bb07d2df3c46b79f80300b0abbe&challenge=a2baf011-e555-44b8-b85d-ba1b53c75c92&client_type=web&risk_type=slide&lang=zh-cn
callback	避免缓存使用
captcha_id	id值由系统下发,固定,可直接从indexjs文件内直接匹配
challenge	由JS生成,uuid值,貌似不要这个参数也行
client_type	客户端类型
risk_type	滑块类型
lang		语言

返回结果中有后续需要用到的值,重要的:lot_number;pow_detail.datetime;payload;process_token;payload_protocol;pt

2、校验滑块

verify接口为校验接口。

请求参数:

callback	去缓存
captcha_id	同上
client_type	同上
lot_number	上一步结果
risk_type	同上
payload		上一步结果
process_token	上一步结果
payload_protocol	上一步结果
pt			固定值?上一步结果,或者默认1?
w			加密值!

返回结果:

pass_token即为后续通过token

关键加密参数W

w参数:

1、直接搜索加密参数w:基本就可以搜到,大致位置:
在这里插入图片描述

此方法的关键入参:

{
    "setLeft": 120,# 滑动距离
    "passtime": 3635,# 滑动时间
    "userresponse": 121.29061845558414,# 根据滑动距离计算
    "device_id": "",
    "lot_number": "c03079fe900a4e6a9957ea554cf3794e",# load接口返回
    "pow_msg": "1|8|sha256|2026-01-15T09:45:30.974438+08:00|54088bb07d2df3c46b79f80300b0abbe|c03079fe900a4e6a9957ea554cf3794e||4fe508d342e7ef66",# 加密点1后续处理
    "pow_sign": "00c58dc8ebf08c52441887c11ed610e779c8e7cdd70a3068b8204f948ffa02c7",# 加密点2,同1一块处理
    "geetest": "captcha",# 固定
    "lang": "zh",# 固定
    "ep": "123",# 固定
    "biht": "1426265548",# 固定
    "gee_guard": {
        "roe": {
            "aup": "3",
            "sep": "3",
            "egp": "3",
            "auh": "3",
            "rew": "3",
            "snh": "3",
            "res": "3",
            "cdc": "3"
        }
    },# 固定
    "TYSC": "opMx",# 固定
    "e6a079": {
        "030f37": {
            "ea554cf3": "e6a995"
        }
    },# 加密点3,lotnum截取嵌套值
    "em": {
        "ph": 0,
        "cp": 0,
        "ek": "11",
        "wd": 1,
        "nt": 0,
        "si": 0,
        "sc": 0
    }# 固定,driver校验结果等
}

加密流程, aes(symmetrical)+ rsa(asymmetric):

在这里插入图片描述

1.1、先把这个数据json化成字符串,如果Python实现记得去除json字符串内的空格。

1.2、获取16位随机数,

1.3、rsa publick跟栈即可得,固定, 1.2结果执行rsa加密

1.4、执行aes加密,加密值1.1结果,key为1.2结果,iv固定值跟栈即可

最终返回:1.4结果+1.3结果

userresponse计算处理

直接搜索定位即可,大致是set_left / 1.0059466666666665 + 2

加密点1,2加密处理

直接搜索关键字,下断点调试:
在这里插入图片描述

加密流程:

需要的参数:pow_detail, lot_number, captcha_id

1.1、获取pow_detail数据。 lot_number, captcha_id,|拼接

1.2、获取随机字符串16位

1.3、1.1结果+1.2结果进行sha256哈希,

1.4、循环1.2,1.3直到满足条件,返回符合条件的1.1结果+1.2结果作为pow_msg,sha256结果作为pow_sign

加密点3lotnum截取值

截取数值确定:好像是当天固定,直接从load接口返回结果中static_path和js字段拼接的JS内匹配即可:

在这里插入图片描述

上述图片解释:(n[13:15]+n[3:5])+.+(n[1:3]+n[26:28])+.+(n[20:27]) :固定长列表内的取值下标90(结果类似n[13,19]),也需要用到

长列表直接使用Python重写即可,解析处理位置:
在这里插入图片描述

最终两段数据组合取lotnum下标截取,需要把后面每位+1最终成:【13,16】+【3,6】【1,4】+【26,29】【20,28】【13,19】,然后值再做成嵌套字典
在这里插入图片描述

这段逻辑是截取lotnum的值

终两段数据组合取lotnum下标截取,需要把后面每位+1最终成:【13,16】+【3,6】【1,4】+【26,29】【20,28】【13,19】,然后值再做成嵌套字典[外链图片转存中…(img-dw4bPHs4-1768446085798)]

这段逻辑是截取lotnum的值

至于滑动距离直接带带弟弟搞吧

附上成功截图

在这里插入图片描述
如有侵权,请联系我删除!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐