Python 爬蟲進階必備 | 某歷史價格查詢網站參數(shù) checkCode 加密邏輯分析(難度半顆星)
第一時間關注Python技術干貨!

圖源:網絡
今日網站
aHR0cDovL3d3dy50b29sMTY4LmNuL2hpc3Rvcnkv
站點來自咸魚技術交流 3 群

淺淺看了一眼,大概以為就是AAencode+jsjiami v6得組合
不過經過分析發(fā)現(xiàn)和這倆東西一點關系沒有,又是被加密忽悠住得一天
抓包分析
主要請求得結果是這三個

然后一些請求用到參數(shù)是下面這個請求返回得

這里重點分析得包是ptinfo

這個包返回了code,這個code在之后請求價格詳情和品名得時候都有用到
所以這個請求中的參數(shù)是分析的關鍵

經過重放請求分析,ud是cookie中的值,沒有登錄態(tài)的就可以忽略了,可固定可隨機
reqid是頁面返回的需要xpath解析一下,con是需要查詢價格的商品鏈接
加密分析與還原
這個checkCode比較有意思,他和頁面返回的checkCode長的很像
直接看 js 的調用棧,可以看到下面的入口

直接單步進去就找到這個加密的地方了

看著是不是很唬人?
我們之前也給大家分析過像aaencode這類看著很秀的其實都很簡單,直接找個解密站就可以還原出來了,包括不用解密站,用控制臺console.log也是可以。
至于下面這個類似ob混淆的東西,其實也不難,畢竟現(xiàn)在的js逆向卷成這樣,ast還原ali哲哥哥都開源了。
但是今天這個站都沒必要研究是否還原,,因為關鍵的邏輯就這個encodeURICompoent方法
應該說不是關鍵邏輯了,是全部邏輯。。
我們走走邏輯,可以看看到

方法第一行是去了#reqid的值

方法第二行是做了#reqid值得反轉

方法第三行是將反轉后得值,取出第 7- 10 得字符

方法第四行是取出#checkCodeId的值

方法第五行是將上一行取出的值+“P”+第三行取出的 3 個字符做一個字符串拼接
方法第六行就是將上面拼接好的值賦值會頁面,就完事了
好像做了防護,好像也沒有做防護。。
不過畢竟是一個免費的網站,功能還是很不錯的,今天的文章就這樣,咱們下次再會~
公眾號配套技術交流群,備注【咸魚666】,入群交流
我是沒有更新就在摸魚的咸魚
收到請回復~
我們下次再見。
對了,看完記得一鍵三連,這個對我真的很重要。
