python爬蟲 - js逆向之猿人學第十六題webpack簡版
阿新 • • 發佈:2021-12-07
好久沒有寫猿人學的分析了,今天來分析一波
開啟網址:
同樣的,也很輕易的拿到介面,
然後這個接口裡的請求引數又是迷人的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裡搞一個看行不行
結語
沒有結語,主要就是定位加密邏輯的思路