Python 爬蟲進階必備 | 某公共資源交易網(wǎng)詳情頁鏈接加密邏輯分析
第一時間關注Python技術干貨!

今日網(wǎng)站
aHR0cDovL2dnenkuendmd2IudGouZ292LmNuL3F1ZXJ5Q29udGVudC1qeXh4LmpzcHg=
這個網(wǎng)站來自技術交流群聊記錄,忘記是哪個大佬發(fā)的,聽說很簡單,所以復現(xiàn)一下
抓包分析
把上面的密文解開,打開是列表頁面,我們要分析的加密是點擊鏈接之后打開新頁面的網(wǎng)址

這個網(wǎng)址在列表頁的網(wǎng)址上的顯示如下

所以需要抓包看看這個點擊的過程做了什么操作。
不過這里比較難受的是這個點擊鏈接是從新的標簽頁打開,這個時候開發(fā)者工具就抓不到新頁面的包了
有人會說,那我就用抓包工具不就好了,話是這么講,但是像我這么懶,只想躺平連個抓包工具都不想開的要怎么搞?
其實很簡單,直接改代碼
找到要打開的頁面鏈接,刪掉 html 中下圖紅框的代碼就可以了

這個時候點擊對應的列表項,就可以抓到這個請求詳情頁的包了。
加密定位
通過上面這個方法可以抓到請求詳情頁的包,自然也可以通過堆棧找到 js 的加密邏輯了。
通過Initiator可以看到堆棧信息


這里就可以看到js的加密邏輯了。
注意
不要等待請求跳轉(zhuǎn)過去!!!
不要等待請求跳轉(zhuǎn)過去!!!
不要等待請求跳轉(zhuǎn)過去!!!
跳轉(zhuǎn)過去 eval 這個棧就點不了了,所以看到Network里面出現(xiàn)了包的時候就取消請求

這個時候,Initiator中的eval才可以點擊
不然就會是下面這樣的

eval 的位置顯示 unkown
加密分析
找到js加密的位置剩下的就簡單了

這一段是加密的主邏輯,這里調(diào)用了aes加密
我們復制到 webstrom 里調(diào)試下
刪掉無關的邏輯,例如ee,r.test這些邏輯判斷
就看到下面這樣的代碼了

記得要安裝crypto-js,不然加密邏輯要自己扣,麻煩
這個時候運行,代碼提示s未定義

這個很簡單的,從這個圖里可以知道eval的上一個棧是jquery.mini.js

所以在這個文件里找就可以了
直接檢索定義var s = 只有一個結(jié)果

帶入這個s值到我們的js邏輯里就可以的到下面的結(jié)果了

再和網(wǎng)頁上對比一下

結(jié)果是一樣的,本篇的難度主要在這個抓包不好抓,定位eval需要一些瀏覽器的小技巧,適合新手鍛煉調(diào)試手法。
我是沒有更新就在摸魚的咸魚
以上就是今天的全部內(nèi)容了
收到請回復~
我們下次再見。
對了,看完記得一鍵四連,這個對我真的很重要。
