小红书 timestamp2 (2022/04/22)

2022-04-23 13:41:34 浏览数 (1)

收到群友消息,小红书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之后的结果。

代码语言:javascript复制
 '{"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中。

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

流程总结

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

代码随后再贴,原文链接:http://t.c

0 人点赞