宣告:本篇文章僅用於知識分享,不用於其他用途
網址:https://oauth.d.cn/auth/goLogin.html
解密邏輯分析
- 訪問網址,隨便輸入使用者名稱和密碼,看觸發的流量包。
- 可以看到使用者名稱是明文的,密碼卻是經過加密的,我們先看看是不是常用的加密。利用網站 https://1024tools.com/hash 檢視。
- 經過對照,沒有一個符合,就得我們自己找邏輯了。全域性搜尋
auth/login
關鍵字。
- 只有兩處,很好判斷,第一處就是我們要找的地方,點進去。
- 打斷點,看看
submitData
是什麼。
- 已經是加密後的資料了,說明加密邏輯在上面,往上翻翻就可看到
submitData
定義的地方。
submitData
中的pwd
是由rsaPwd
賦值的,搜尋rsaPwd
是哪裡定義的。
- 找到定義處,是個rsa加密,找到
rsa
函式的定義位置。
- 開始摳程式碼了。
var rsa = function (arg) {
setMaxDigits(130);
var PublicExponent = "10001";
var modulus = "be44aec4d73408f6b60e6fe9e3dc55d0e1dc53a1e171e071b547e2e8e0b7da01c56e8c9bcf0521568eb111adccef4e40124b76e33e7ad75607c227af8f8e0b759c30ef283be8ab17a84b19a051df5f94c07e6e7be5f77866376322aac944f45f3ab532bb6efc70c1efa524d821d16cafb580c5a901f0defddea3692a4e68e6cd";
var key = new RSAKeyPair(PublicExponent, "", modulus);
return encryptedString(key, arg);
};
console.log(rsa("123123"));
執行發現,沒有setMaxDigits
函式。
回去找定義位置。
直接把這個檔案中的所有程式碼複製出來。再執行,沒有RSAKeyPair
函式。
繼續回去找。
直接把這個檔案中的所有程式碼複製出來。再執行,沒有BarrettMu
函式。
繼續回去找。
直接把這個檔案中的所有程式碼複製出來。再執行,成功得到結果。
與資料包中pwd
的值一致,完事。