前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫进阶必备 | 某职场信息平台加密参数与数据解密逻辑分析

Python 爬虫进阶必备 | 某职场信息平台加密参数与数据解密逻辑分析

作者头像
咸鱼学Python
发布2023-09-01 09:07:23
1500
发布2023-09-01 09:07:23
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

图源:AI绘画

今日网站

aHR0cHM6Ly93d3cua2Fuemh1bi5jb20vZmlybS9pbmZvLzFuVl8ydGt+Lmh0bWw=

抓包分析

刷新页面可以看到下面的请求包

有两个加密参数并且返回值也是加密的

参数加密定位与分析

定位比较简单,全局搜索就可以了

全局检索 kiv,找到下面的代码位置,可以看到 b 和 kiv 在这里赋值

打上断点,然后刷新页面

找到我们要分析的请求位置

可以看到a = (0,M._A)(), 单步进去可以看到下面的逻辑

代码语言:javascript
复制
for (var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""), n = "", r = 0; r < 16; r++) {
                n += t[Math.ceil(61 * Math.random())]
}

这里的 kiv 的值就是一个随机数

继续分析 b 的加密,往下分析可以看到 b 由 t 赋值得到

t 的逻辑如下

代码语言:javascript
复制
t = (0,M.mA)(n, {iv: a}).replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "~")))

这里 t 的加密用到了上面生成好的 a,单步进去可以看到 mA中是一个 AES加密

既然知道是 AES 就继续向下分析 AES 的key、模式、还有填充方式三个要素

这三个要素都是从 n 中获取到的,而 n 是由 u() 得到的,所以单步进 u 分析

可以看到 u 中写的很明白 AES 的加密三要素

这里的 e 为固定的加密 key (隐藏关键位置,如有需要请自行分析)

代码语言:javascript
复制
G*************r

知道上面分析的几个要素之后,我们本地用 Python 测试一下看看

页面结果
本地结果

带入Python请求中测试一下能否请求成功

可以正常获取到结果

加密数据的解密逻辑分析

加密的数据的解密可以通过

1、搜索判断请求状态码为 200

2、直接在上面 AES 的加密位置的下方就可以找到的 AES解密的部分代码打上断点之后从堆栈往上找就可以找到了

这个逻辑其实在上面我们已经分析过了,key 还是原来的那个,iv 部分变成我们提交请求的 kiv 即可

验证一下整个流程

上就是今天的全部内容了,咱们下次再会~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日网站
    • 抓包分析
      • 参数加密定位与分析
        • 页面结果
        • 本地结果
      • 加密数据的解密逻辑分析
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档