1. 程式人生 > 其它 >python爬蟲 - js逆向之猿人學第十六題webpack簡版

python爬蟲 - js逆向之猿人學第十六題webpack簡版

好久沒有寫猿人學的分析了,今天來分析一波 開啟網址: 同樣的,也很輕易的拿到介面, 然後這個接口裡的請求引數又是迷人的m,m就是我們的目標了 分析 老規矩,搜尋: 搜一堆出來,感覺都不太靠譜 那咋辦?先看特徵,看這個長度是多少的,臥槽,這個長度有點少見了 點呼叫棧看看: 看到這個就很可疑了 為啥這麼說,dispatch分發請求,匿名函式操作,實際的request,所以,關鍵的邏輯一定在這個request或者匿名函式anonymous前後,再看js名字就叫webpack,那就是webpack打包的,那前面才分析過webpack的東西,不用怕,點進去看: 進來都到這裡,打上斷點,翻頁看看,這不就找到了嗎,看著webpack唬人,感覺沒兩樣啊

前言

好久沒有寫猿人學的分析了,今天來分析一波

開啟網址:

同樣的,也很輕易的拿到介面,

然後這個接口裡的請求引數又是迷人的m,m就是我們的目標了

分析

老規矩,搜尋:

搜一堆出來,感覺都不太靠譜

那咋辦?先看特徵,看這個長度是多少的,臥槽,這個長度有點少見了

點呼叫棧看看:

看到這個就很可疑了

為啥這麼說,dispatch分發請求,匿名函式操作,實際的request,所以,關鍵的邏輯一定在這個request或者匿名函式anonymous前後,再看js名字就叫webpack,那就是webpack打包的,那前面才分析過webpack的東西,不用怕,點進去看:

進來都到這裡,打上斷點,翻頁看看,這不就找到了嗎,看著webpack唬人,感覺沒兩樣啊

然後看邏輯,m的值就是n[e(528)](btoa, p_s)生成的了,然後傳入的引數btoa,這個可以直接呼叫,不用多說,再看後面的p_s,定義就在上面,那就只剩n[e(528)]這個不知道啥東西了,滑鼠放上去,發現,這個就是前面說的匿名函式anonymous了

點過去,發現就在上面,然後看邏輯,第一個引數是個函式,然後把第二個引數傳入函式直接返回,這個不就是python裡的裝飾器嘛,

那麼,也就是說,實際的加密邏輯就是btoa(p_s)

控制檯操作下:

這不就出來了嗎

然後,前面js逆向安全專題裡說了,btoa就是個base64的函式,直接忽略了,python裡直接就有,主要是後面的這個引數:

p_s = Date[e(496)](new Date)[e(517)]()

時間相關的都好說,就差這個e(517)和e(496)了,控制檯看是啥東西:

最後的結果:

然後這個時間戳的話,是毫秒級別的,13位

除錯

那行,直接在python裡搞一個看行不行

結語

沒有結語,主要就是定位加密邏輯的思路