JS逆向某網站登錄密碼分析
- 2020 年 3 月 2 日
- 筆記
聲明:
本文僅供研究學習使用,請勿用於非法用途!
目標網站
aHR0cHM6Ly9hdXRoLmFsaXBheS5jb20vbG9naW4vaW5kZXguaHRt
今日目標網站是某知名支付網站,感覺自己有點飄了~~
這裡只解密密碼的加密方式
請求分析
先看請求,輸入帳號,密碼後點擊登錄,記得提前瀏覽器打開 F12
這裡注意輸入錯誤的密碼,方便我們查看請求數據包
在瀏覽器的開發者工具介面,快捷鍵 Crtl+Shift+F 直接打開全局搜索,
定位加密
根據上面的搜索關鍵詞 password= ,我在 index.js 文件種定位到了加密位置 getPassword,熟悉的 RSA 加密
打上斷點後,重新發請求,果不其然,在斷點處停下來了!
解密
之前有講過一篇有關 RSA 加密的專題,這裡可以直接將 RSA 相關的程式碼拷貝下來。我們主要來改寫這個 getPassword 加密函數, 原函數如下,其中 n = e.alipayEncrypt(2, i, t) 是最後要返回的結果!
function getPassword(t) { var e = new s.RSA; i = s.Base64.decode(this.options.TS) e.setPublicKey(this.options.PK); return e.alipayEncrypt(2, i, t);
我們很容易能獲取到 i 和 公鑰的值,這兩個值都是寫死的
i 是將裡面的參數經過 base64 解碼後的結果,在node 中也有直接的庫來搞定,就像你在 Python 中調用一樣,並不需要再去扣程式碼!
然後再補上 s.RSA 相關程式碼,即解密成功,具體扣程式碼細節,就不詳述了
了解更多內容,煩請關注本人公眾號, Python編程與實戰