当前位置:网站首页>小红书 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.
- OC to swift conditional compilation, marking, macro, log, version detection, expiration prompt
- When splicing HQL, the new field does not appear in the construction method
- Arduino for esp8266串口功能简介
- Leetcode153 - find the minimum value in the rotation sort array - array - binary search
- 1990年1月1日是星期一,定义函数date_to_week(year,month,day),实现功能输入年月日后返回星期几,例如date_to_week(2020,11,1),返回:星期日。 提示:
- Don't you know the usage scenario of the responsibility chain model?
- Swift: entry of program, swift calls OC@_ silgen_ Name, OC calls swift, dynamic, string, substring
- 解决computed属性与input的blur事件冲突问题
- I/O复用的高级应用之一:非阻塞 connect———使用 select 实现(也可以用 poll 实现)
猜你喜欢
随机推荐
Brute force of DVWA low -- > High
LeetCode167-两数之和II-双指针-二分-数组-查找
[proteus simulation] automatic range (range < 10V) switching digital voltmeter
[NLP] HMM hidden Markov + Viterbi word segmentation
Leetcode153 - find the minimum value in the rotation sort array - array - binary search
抑郁症治疗的进展
Chapter 7 of JVM series -- bytecode execution engine
LeetCode162-寻找峰值-二分-数组
UML project example -- UML diagram description of tiktok
【STC8G2K64S4】比较器介绍以及比较器掉电检测示例程序
你還不知道責任鏈模式的使用場景嗎?
OC 转 Swift 条件编译、标记、宏、 Log、 版本检测、过期提示
利用 MATLAB 编程实现最速下降法求解无约束最优化问题
Redis主从同步
Leetcode165 compare version number double pointer string
UML项目实例——抖音的UML图描述
PCIe X1 插槽的主要用途是什么?
QT actual combat: Yunxi chat room
ASEMI三相整流桥和单相整流桥的详细对比
I/O复用的高级应用之一:非阻塞 connect———使用 select 实现(也可以用 poll 实现)