Python 爬蟲(chóng)進(jìn)階必備 | 某志愿數(shù)據(jù)站點(diǎn)加密參數(shù)加密邏輯分析
點(diǎn)擊上方“ 咸魚(yú)學(xué)Python ”,選擇“ 加為星標(biāo) ”
第一時(shí)間關(guān)注Python技術(shù)干貨!
圖源:AI繪畫(huà)
ChatGPT:AI 應(yīng)用于普通人的增強(qiáng)學(xué)習(xí)指南
前言
今年第一篇技術(shù)水文,沖!
“最近 AI 的風(fēng)很大,咸魚(yú)一度陷入 FOMO ,累挺!!!
恰巧遇到一個(gè)讀者面試遇到面試題投稿過(guò)來(lái)分析,正好換換腦子
先看需求,原題如下(以下為聊天記錄部分截圖)

今日站點(diǎn)
aHR0cHM6Ly93d3cuNTFzZHguY29tL3NjaG9vbC8/ZnJvbT0lMkZzY2hvb2w=
抓包分析
需求是翻頁(yè)+詳情內(nèi)容解析
先看翻頁(yè),點(diǎn)擊翻頁(yè)看到下面的請(qǐng)求

看下請(qǐng)求提交的參數(shù)

有一個(gè) verifySign,這應(yīng)該就是重點(diǎn)分析的參數(shù)了
詳情頁(yè)里面有一個(gè)歷史錄取分?jǐn)?shù),看了一下請(qǐng)求多了一個(gè) paramSign

加密參數(shù)分析
verifySign 加密分析
直接搜索加密參數(shù) verifySign

命中的結(jié)果就一個(gè),點(diǎn)進(jìn)去再次搜索定位

好像有點(diǎn)簡(jiǎn)單,簡(jiǎn)單分析一下參與計(jì)算的參數(shù)
參與 verifySign 計(jì)算的參數(shù)有
o,?t,?l.a.verify
o 是當(dāng)前的時(shí)間戳
var?o?=?(new?Date).getTime()
t 是生成6位隨機(jī)數(shù)
var?t?=??("000000"?+?Math.floor(999999?*?Math.random())).slice(-6)
l.a.verify 是加鹽字符串【隱去部分】
sdxxqbrolkjwrgoiuyaghnow32429asnnhg
這三個(gè)部分的字符串通過(guò)“ _”拼接之后經(jīng)過(guò)方法 v 之后得出最終的結(jié)果,單步調(diào)試可以得出 v 就是 md5

以上代碼還原為 Python 邏輯之后可以正常請(qǐng)求,結(jié)果如下

paramSgin 加密分析
通過(guò) xhr 斷點(diǎn)

找到下面的加密位置

得到 paramSing 由下面的邏輯得到
l()(""?+?t.univId?+?t.provinceId?+?n.a.SALT)
其中
univId,provinceId?是提交參數(shù),一個(gè)是報(bào)考省份id,一個(gè)是高校的id
n.a.SALT 是加鹽的字符串【隱去關(guān)鍵】
25raHVwZ2xnemhsbW9jdka2pkdG92aHB3ZGVoYHBoAAA
得到的結(jié)果經(jīng)過(guò)拼接后經(jīng)過(guò) l 方法,這里的 l 方法單步進(jìn)去也是一個(gè) md5

有了上面的邏輯之后,可以使用 Python 實(shí)現(xiàn)下面的結(jié)果

以上就是今天的全部?jī)?nèi)容了,咱們下次再會(huì)~
ChatGPT:AI 應(yīng)用于普通人的增強(qiáng)學(xué)習(xí)指南
End.
以上就是全部的內(nèi)容了,咱們下次再會(huì)~
備注【 咸魚(yú)666 】,入群交流
我是沒(méi)有更新就在摸魚(yú)的咸魚(yú)
收到請(qǐng)回復(fù)~
咸魚(yú):來(lái)都來(lái)了,再不點(diǎn)贊就不禮貌了!
