極X助手
aHR0cHM6Ly93d3cuamlkYWlob21lLmNvbS9vZmZpY2VyLyMvbG9naW4=javascript
先抓包看看此次要分析的參數。【圖1-1】java
看到【圖1-1】裏是沒有加密參數名的。因此爲了快速定位到加密的位置,咱們試試 XHR 斷點。python
切換到 控制檯 - Source 選項卡 ,如【圖1-2】位置填入下面的內容。web
接着咱們再發起一次請求,能夠看到斷點打上了。【圖1-3】微信
咱們點擊左下角的{}
格式化 JS 看看斷點斷上的位置有沒有咱們須要的內容。【圖1-4】app
咱們能夠看到這裏函數 y
傳入一個參數t
,t
中包含咱們須要的提交數據【圖1-5】。可是在這個斷點位置並不能找到參數加密的地方,因此咱們須要點擊右側的堆棧往上看看。dom
咱們經過查看堆棧信息,找到了這裏【圖1-6】。發如今這裏出現了 params
相關的的操做,因此這裏的可能包含的就是咱們須要的加密位置,咱們根據提示進去看看這裏的加密邏輯是什麼樣的。編輯器
能夠看到這裏把通過處理的密碼和用戶名傳入後,再次作了另外一次加密處理後獲得了變量i
。函數
var r = t.randomKey(16), i = t.aesEncrypt(JSON.stringify(e), r);
咱們分別把變量i
須要的參數分別跟進去看看生成規則。【圖1-8】是變量r
的生成規則是一串隨機的字符串。ui
接下來是加密變量i
的加密方法【圖1-9】。
接下來只須要把這些參數的方法複製到編輯器中進一步的補全就能夠了。
Tip: 這裏的參數e
是咱們傳入的用戶名和密碼,在【圖1-6】的 54-55 行中傳入,且密碼通過了一層MD5的加密。
這裏不少朋友糾結於相似 i.enc.Utf8.parse
這裏的i
如何補全,其實這裏的i
就是咱們經常使用的CryptoJS
,只要引入後,直接替換就能夠了,不用扣取整個JS。
本文分享自微信公衆號 - 鹹魚學Python(xianyuxuepython)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。