Python 爬虫进阶必备 | 某志愿数据站点加密参数加密逻辑分析

咸鱼学Python

共 1718字,需浏览 4分钟

 ·

2023-05-16 22:21

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

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


75d2421abc125c9fb4e9e72512d3f44d.webp图源:AI绘画

ChatGPT:AI 应用于普通人的增强学习指南

前言

今年第一篇技术水文,冲!

最近 AI 的风很大,咸鱼一度陷入 FOMO ,累挺!!!

恰巧遇到一个读者面试遇到面试题投稿过来分析,正好换换脑子

先看需求,原题如下(以下为聊天记录部分截图)

ae4a6ce439ac91c9009baf62bcf588c2.webp

今日站点

aHR0cHM6Ly93d3cuNTFzZHguY29tL3NjaG9vbC8/ZnJvbT0lMkZzY2hvb2w=

抓包分析

需求是翻页+详情内容解析

先看翻页,点击翻页看到下面的请求

14d7ae63092551d22b777b3c5d830153.webp

看下请求提交的参数

2667b3f6aa193dddb4adae6117274d0d.webp

有一个 verifySign,这应该就是重点分析的参数了

详情页里面有一个历史录取分数,看了一下请求多了一个 paramSign

8617e9aaeafde65f6ebdf04bb3eac728.webp

加密参数分析

verifySign 加密分析

直接搜索加密参数 verifySign

f3c513412efc9980d7d11558542cab28.webp

命中的结果就一个,点进去再次搜索定位

4d35d804debf57acc4970bd2dcb0ffe4.webp

好像有点简单,简单分析一下参与计算的参数

参与 verifySign 计算的参数有

      
      o, t, l.a.verify

o 是当前的时间戳

      
      var o = (new Date).getTime()

t 是生成6位随机数

      
      var t =  ("000000" + Math.floor(999999 * Math.random())).slice(-6)

l.a.verify 是加盐字符串【隐去部分】

      
      sdxxqbrolkjwrgoiuyaghnow32429asnnhg

这三个部分的字符串通过“ _”拼接之后经过方法 v 之后得出最终的结果,单步调试可以得出 v 就是 md5

f299521e68822b521d089bd420aded3c.webp

以上代码还原为 Python 逻辑之后可以正常请求,结果如下

79d6083f31de14a244543eaa3cc7ff1a.webp

paramSgin 加密分析

通过 xhr 断点

c6ca2f26eb5467a16f6de144fc28a793.webp

找到下面的加密位置

721c5d3d408ab43f266f8a00de0369dd.webp

得到 paramSing 由下面的逻辑得到

      
      l()("" + t.univId + t.provinceId + n.a.SALT)

其中

      
      univId,provinceId 是提交参数,一个是报考省份id,一个是高校的id

n.a.SALT 是加盐的字符串【隐去关键】

      
      25raHVwZ2xnemhsbW9jdka2pkdG92aHB3ZGVoYHBoAAA

得到的结果经过拼接后经过 l 方法,这里的 l 方法单步进去也是一个 md5

6b8ee8dc56eebcc57a62f9fb7e2f7a0f.webp

有了上面的逻辑之后,可以使用 Python 实现下面的结果

590b174e2ea6120d7d1d3c45bf7e30d8.webp

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

ChatGPT:AI 应用于普通人的增强学习指南

End.

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

备注【 咸鱼666 】,入群交流

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

收到请回复~

e48d08d4388f991e11a68bff7849369b.webp咸鱼:来都来了,再不点赞就不礼貌了!
浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报