当前位置:网站首页>小红书 timestamp2 (2022/04/22)
小红书 timestamp2 (2022/04/22)
2022-04-23 14:51:00 【李玺】
收到群友消息,小红书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中。
关于补变量名的问题,可以写个正则统一替换。
流程总结
Sign生成流程是先把浏览器信息base64,然后加密得到k,s,再把k和s通过FbmlO方法拼接起来得到b,然后对b再进行加密得到最终的sign值。
版权声明
本文为[李玺]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1986113
边栏推荐
猜你喜欢
L'externalisation a duré quatre ans.
I thought I could lie down and enter Huawei, but I was confused when I received JD / didi / iqiyi offers one after another
[servlet] detailed explanation of servlet (use + principle)
剑指 Offer II 019. 最多删除一个字符得到回文(简单)
8.3 语言模型与数据集
GIS数据处理-cesium中模型位置设置
Bingbing learning notes: take you step by step to realize the sequence table
Leetcode165 compare version number double pointer string
外包干了四年,废了...
The art of automation
随机推荐
Leetcode149 - maximum number of points on a line - Math - hash table
Borui data and F5 jointly build the full data chain DNA of financial technology from code to user
Is asemi ultrafast recovery diode interchangeable with Schottky diode
ASEMI三相整流桥和单相整流桥的详细对比
DVWA之暴力破解(Brute Force)Low-->high
LeetCode162-寻找峰值-二分-数组
拼接hql时,新增字段没有出现在构造方法中
【工厂模式详解】工厂方法模式
1-初识Go语言
Ali developed three sides, and the interviewer's set of combined punches made me confused on the spot
ArrayList collection basic usage
【Servlet】Servlet 详解(使用+原理)
We reference My97DatePicker to realize the use of time plug-in
Chapter 7 of JVM series -- bytecode execution engine
利用 MATLAB 编程实现最速下降法求解无约束最优化问题
Interviewer: let's talk about the process of class loading and the mechanism of class loading (parental delegation mechanism)
成都控制板设计提供_算是详细了_单片机程序头文件的定义、编写及引用介绍
一款不错的工具:aardio
I/O复用的高级应用之一:非阻塞 connect———使用 select 实现(也可以用 poll 实现)
MDS55-16-ASEMI整流模块MDS55-16