核心内容摘要
岁月流转,情深依旧——杨钰莹的音乐与人生
某东登录滑块验证逆向逆向网址验证流程输入账号密码点击登录弹出验证验证数据包分析如何去构造这个请求参数cookie参数__jdxxxwlfstk_smdl3ABxxx加密参数a与djcap_dvzw_fppayload参数加密函数轨迹的模拟代码效果图逆向网址aHR0cHM6Ly9wYXNzcG9ydC5qZC5jb20vbmV3L2xvZ2luLmFzcHg验证流程输入账号密码点击登录弹出验证这里的验证分为两种滑块验证及图标点选验证注意这里的滑块验证码有点坑哪怕你滑正确它都可能会判断你滑动失败从而触发下一个验证码可能是滑块验证也可能是图标点选验证。
验证数据包失败验证数据包注意它会返回一个st的数据这个是需要请求下一个验证码的关键参数成功验证数据包分析如何去构造这个请求参数要构造这个请求参数主要是两个cookie及payloadcookie参数__jdxxx这个参数是由一个字典生成的生成这个字典的开始位置在这最终生成的字典那生成这些__jdxxx位置如下wlfstk_smdl这个cookie是通过访问链接https://qr.m.jd.com/show返回的有3ABxxx3ABxxx的cookie值是访问链接https://jra.jd.com/jsTk.do返回的从这里开始就要接触jd的加密这个链接所需要的参数如下图所示加密参数a与d这两个加密参数是相呼应的你需要先生成d在通过d来生成ad的生成时通过收集浏览器指纹数据在通过自定义的base64加密而成a的生成需要通过d来参与但是其中还有一个重要的参数fpfp的加密算法是哈希算法其中也参杂了一些浏览器的指纹数据a的生成与d的生成别无二至把这些加密参数搞定直接base64加密即可jcap_dvzw_fp这个cookie的值是通过访问链接https://jcap.m.jd.com/cgi-bin/api/fp访问的有这里主要有两个参数si与ctsi是session_id是通过访问链接https://passport.jd.com/new/login.aspx的网页内容中有ct值是JD加密最主要的它的加密算法和后续的验证码加密算法一致它的加密位置如下图o是加密函数, 哪个数组是是加密的参数其中s是session_idl是你的账号以及一些浏览器指纹数据它这个加密是wasm加密这里先不展示加密函数。
至此cookie的生成到此为止payload参数payload参数主要如下它对应的代码生成位置如下其中tk加密的数组中t就是我们的轨迹数组以及点选轨迹其它就不展示了加密函数这几个加密函数都是你需要取实现的tk参数是getTKData同理CSDCTDSED都是不同参数运行的加密函数最后是什么加密我也很懵在我完成之前是wasm但是最近好像更新了但是我再去看好像没什么变化这个加密函数生成的位置如下要想实现它只需要把代码扣下来异步执行即可轨迹的模拟对于滑块的模拟没有什么好说但是对于图标点选我的思路是首先它会返回一个大图一个小图对于小图直接使用rembg的AI抠图然后用颜色匹配或者其它匹配策略即可代码效果图代码就这样主要是模拟的滑块轨迹数组没有去优化随便写的导致通过率不高但这个不重要主要是图标点选验证才是大头只要图标点选验证目标坐标正确即可以及图标的匹配算法还需要再一次优化