聲明:
本文僅供研究學習使用,請勿用於非法用途!
目標網站
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編程與實戰