小红书timestamp2

滑块问题

建议调试的时候删除timestamp2就行,不要把所有cookie都删了,否则进入无限滑块。 尽管只删除timestamp2,生成的参数值一样。

开控制台的时候,把这个div删掉就可以拖动了。
在这里插入图片描述如果还是进入无限滑块环节,换下IP,过一会儿会解封。


接口分析

之前的registerCanvas接口也更新了,FormData中的sign进行了加密。
在这里插入图片描述

timestamp2现在是服务端返回的,请求时还是只需要携带timestamp2。
在这里插入图片描述


Sign分析

掏出祖传的XHR断点。 输入: /v2/shield/registerCanvas , 删除timestamp2刷新页面
在这里插入图片描述
往回走两步,可以看到参数 i 和 u。
在这里插入图片描述
对应的 id 和 sign。
在这里插入图片描述
在 call stack 中向下调试。
在这里插入图片描述

找到了u = I.qrTqB(l, I.PNXDL, JSON[r(1347)](i)) ,把参数都打印下看看。
在这里插入图片描述
即:
在这里插入图片描述

所以扣下来应该是这样的流程
在这里插入图片描述

经过一阵分析后,发现关键位置在 I[o(1159)](function(n, t, e) {} 这里。
在这里插入图片描述
I."uPhZo" = function(n, t, e, r) { return n(t, e, r) },

在这里插入图片描述

所以说最后的调用如下图所示:

在这里插入图片描述

eyJ1c2VyQWdlbnQiOiJNb3ppbGxh 是 浏览器参数base64之后的结果。

 '{"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36","webdriver":false,"language":"zh-CN","colorDepth":24,"deviceMemory":8,"hardwareConcurrency":8,"screenResolution":"1920;1080","availableScreenResolution":"1920;1040","timezoneOffset":-480,"timezone":"Asia/Shanghai","sessionStorage":1,"localStorage":1,"indexedDb":1,"openDatabase":1,"cpuClass":"unknown","platform":"Win32","plugins":["PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","Chrome PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","Chromium PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","Microsoft Edge PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf","WebKit built-in PDF::Portable Document Format::application/pdf~pdf,text/pdf~pdf"],"canvas":"10cfbbb02b2606dbc2ccb15a3cd2b558","adBlock":false,"hasLiedLanguages":false,"hasLiedResolution":false,"hasLiedOs":false,"hasLiedBrowser":false,"touchSupport":"0;false;false","fonts":"4;7;8","audio":"124.04347527516074"}'  

扣代码补环境

H中有加解密相关变量名。

在这里插入图片描述

参数中会判断是encrypt还是decrypt,加密方法最终会走到case 9 中 return T中。

在这里插入图片描述

关于补变量名的问题,可以写个正则统一替换。

在这里插入图片描述


ID分析

id参数是sign下面的c

在这里插入图片描述

c = I[r(570)](v, I[r(791)](u, I[r(222)]))

在这里插入图片描述

经对比,v方法是普通的md5加密。

在这里插入图片描述


流程总结

Sign生成流程是先把浏览器信息base64,然后加密得到k,s,再把k和s通过FbmlO方法拼接起来得到b,然后对b再进行加密得到最终的sign值。

在这里插入图片描述

ID生成流程是把sign和字符串RRq9y03tuV进行拼接,然后通过v方法进行MD5加密。

在这里插入图片描述


代码部分

代码下载:

【温馨提示:此处隐藏内容需要付费订阅后才能查看!】


当你出现滑块时,目前只要更换参数中的canvas就可以批量跑了,随机生成一个32位字符串即可。

在这里插入图片描述
切记不要一直去注册timeStamp2,因为timeStamp2在相同浏览器信息下的值的固定的。

等你现有的timeStamp2失效了,再换canvas注册新的。


运行测试

拿本地的浏览器参数在代码中加密,返回的结果和浏览器的结果相同

在这里插入图片描述

timestamp2也和浏览器的结果相同,说明我们的补出来是正常的。

在这里插入图片描述

点赞

发表回复