Python爬蟲進階必備 | 極X助手加密算法分析

極X助手

aHR0cHM6Ly93d3cuamlkYWlob21lLmNvbS9vZmZpY2VyLyMvbG9naW4=javascript

先抓包看看此次要分析的參數。【圖1-1】java

圖1-1

看到【圖1-1】裏是沒有加密參數名的。因此爲了快速定位到加密的位置,咱們試試 XHR 斷點。python

切換到 控制檯 -  Source 選項卡 ,如【圖1-2】位置填入下面的內容。web

圖1-2

接着咱們再發起一次請求,能夠看到斷點打上了。【圖1-3】微信

圖1-3

咱們點擊左下角的{}格式化 JS 看看斷點斷上的位置有沒有咱們須要的內容。【圖1-4】app

圖1-4

咱們能夠看到這裏函數 y傳入一個參數tt中包含咱們須要的提交數據【圖1-5】。可是在這個斷點位置並不能找到參數加密的地方,因此咱們須要點擊右側的堆棧往上看看。dom

圖1-5

咱們經過查看堆棧信息,找到了這裏【圖1-6】。發如今這裏出現了 params相關的的操做,因此這裏的可能包含的就是咱們須要的加密位置,咱們根據提示進去看看這裏的加密邏輯是什麼樣的。編輯器

圖1-6

能夠看到這裏把通過處理的密碼和用戶名傳入後,再次作了另外一次加密處理後獲得了變量i函數

var r = t.randomKey(16), i = t.aesEncrypt(JSON.stringify(e), r);
圖1-7

咱們分別把變量i須要的參數分別跟進去看看生成規則。【圖1-8】是變量r的生成規則是一串隨機的字符串。ui

圖1-8

接下來是加密變量i的加密方法【圖1-9】。

圖1-9

接下來只須要把這些參數的方法複製到編輯器中進一步的補全就能夠了。

Tip: 這裏的參數e是咱們傳入的用戶名和密碼,在【圖1-6】的 54-55 行中傳入,且密碼通過了一層MD5的加密。

這裏不少朋友糾結於相似 i.enc.Utf8.parse 這裏的i如何補全,其實這裏的i 就是咱們經常使用的CryptoJS,只要引入後,直接替換就能夠了,不用扣取整個JS。


本文分享自微信公衆號 - 鹹魚學Python(xianyuxuepython)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索