本篇博客要盤的目標站點是【掌房買好房】登錄頁加密邏輯,提前訪問 http://eip.chanfine.com/login.jsp
做一下接口分析。
隨機寫入一個賬號和密碼,測試加密接口。
通過開發者工具查看到接口參數如下所示。
其中加密位置呈現如下內容。
其中比較重要的就是 j_password
,我們要解析的位置也在這裡。
直接全局搜索關鍵字 j_password
即可查詢對應值。
直接定位到檢索結果中的 desEncrypt
函數位置,得到下述內容。
鼠標移動到加密函數位置,發現出現 VM 相關內容,這裡就可以初步猜測其使用的是 eval
函數加密。
直接跳轉到對應代碼部分,其實已經得到了相關邏輯,參考著下述代碼編寫 Python 代碼就可以完成任務,但這與我們一開始學習 eval 逆向相違背。
function desEncrypt(value, xForm, type) {
if (_0(xForm)) {
return value;
} else {
var keyObj = {
};
if (type == null || "aes" == type.toLowerCase()) {
keyObj = SECURITYKEY.get();
value = CryptoJS.AES.encrypt(value, CryptoJS.enc.Utf8.parse(keyObj.key), {
iv: CryptoJS.enc.Utf8.parse(keyObj.iv),
}).toString();
} else {
keyObj = SECURITYKEY.get("des");
value = CryptoJS.DES.encrypt(value, CryptoJS.enc.Hex.parse(keyObj.key), {
iv: CryptoJS.enc.Hex.parse(keyObj.iv),
});
}
return keyObj.security + value;
}
}
從上述代碼提煉關鍵字 SECURITYKEY
,在全局代碼再次檢索。
結果中發現了加密函數真實位置,並且明顯的 eval
痕跡。
既然已經找到代碼源頭,接下來就可以找一款在線解密工具,實施解析即可。
你正在閱讀 【夢想橡皮擦】 的博客
閱讀完畢,可以點點小手贊一下
發現錯誤,直接評論區中指正吧
橡皮擦的第 685 篇原創博客
從訂購之日起,案例 5 年內保證更新