声明:
本文仅供研究学习使用,请勿用于非法用途!
目标网站
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编程与实战