Python 爬虫进阶必备 | 某私募数据平台数据解密逻辑解析

共 1179字,需浏览 3分钟

 ·

2022-01-10 01:21

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!


6f76a140686a64ddd5235ac10824795e.webp

图源:极简壁纸

今日网站

今天把一个 500 人的交流群解散了,原因在群里的鱼友都知道

开车开到都没人聊技术,真的是麻了

f72b8e94c749c3f53d23c02deadf2a61.webp

重新给想要交流技术的群友开了个群,终于不用担心打开群聊社死了,舒心不少

有失散的鱼友可以在后台回复【入群】

爬虫逆向方向交流群,不要开车

这个网站就是来自新群

aHR0cHM6Ly9tYXgucGVkYXRhLmNuLw==

08db49776c3c454c1578c98b19b75623.webp

抓包分析

想看数据的话要用微信扫码登陆才行,进去还要绑定手机号 + 阿里滑块

账号 + 滑块的方式基本搞定大部分堆账号的高并发爬虫,比之前新闻上某个被爬虫 ddos 宕机的网站好上不少5aefab12e876eb7898a4d102606f00ff.webp

【手动狗头保命】

登陆之后我们看看基金栏目,这个网站是返回值加密,大概率都是走同一个解密逻辑

而且 post 请求提交的参数大都见词知义

2484c5159d71f0f7bef46a57d83f1308.webp

所以分析返回值加密就完事了

1b09f205dc03bafb1bcf99d93ce0cb1a.webp

加密定位

直接翻 js 的调用堆栈

ace34f3b08340a3bb4d30cfc8be8c394.webp

通过分析可以找到下面的位置

55ce51216dde037bebe4fc663dcf0db0.webp

ps:这一步也可以用油猴脚本快速定位,我第二次分析的时候就是想用通用脚本跑出来的,结果这一步解密操作是异步执行的。

而网站异步调用 JSON 的时候报错了,而报错的位置正好就是要分析的解密位置,算是误打误撞直接一步到位了。

79bc07d5029daca6d36807e568c18372.webp

就离谱。。

b51a3a80955e8566cb3fbd2771c18c6a.webp774bfd54e76d7bffe9833dcdcdbe2267.webp

加密分析

定位到加密之后,我们就要分析下如何把这个代码用到脚本请求上了

先扣代码,看看用到了哪些参数

M 传入的是两个参数,分别是t,n

这里的tn都是请求返回的参数,t 对应这 data,n 对应 exor

139e81e506a5c90e25e159892a95ded5.webp

然后进入下一步s["a"]是获取当前浏览器缓存

9b3daf9f267843065d4840372b150849.webp

输出一下调用结果

ff5b5edf79509c185c63b0ebf8e16400.webp

通过s["a"]中的localStorage.getItem我们知道他获取的是当前浏览器缓存的某一个值,我们对比一下就知道获取的什么值了

a95c14db23470974674ba86c60a0c21d.webp

这里将loginTokenexor传入了L中计算

fd532308def8a1ee3a8c891c977bda70.webp

这步很简单就是分隔拼接和转字符

然后将结果传入下一个表达式

同时将加密的数据传入B

2d6099bf8c4e8064fc8477452025a3a5.webp

看这个码表就是base64,我们对比一下结果看看

网站计算结果如下

8cb7f9c5b1cdafc88b8cad1ca8e6ec18.webp

我们计算的结果如下

84e616d445702ffcbf33dad958580399.webp

所以跳过B,这里的Y又是字符转化,继续下一步

3db67d2906d2b582166fcf12dae96695.webp

这个时候代码运行到gunzipSync,这个之前也教过怎么搞,在分析微店的那篇里,点击下方链接跳转

Python 爬虫进阶必备 | 某店登陆参数 UA 加密逻辑分析

同样都是导包,上次是用到了gzip,我们导入的是pako

这次用到gunzipSync我们再百度下看看导什么包

248ef7cbd35421d9149f3496ace13f7a.webp

引用链接:https://www.educative.io/edpresso/what-is-gunzipsync-in-nodejs-zlib-module

到这里就完事了,我们搞一搞 js 在 python 里面调用看看

c070ea72c898fc714ad585bee810ecf2.webp

完事~

好了,以上就是今天的全部内容了。

我是没有更新就在摸鱼的咸鱼

收到请回复~

我们下次再见。

75e2e6b8d7537e835af96eaae6b7d5fb.webp对了,看完记得一键四连,这个对我真的很重要。

浏览 143
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报