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咸鱼:来都来了,再不点赞就不礼貌了!

浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报