事先声明
本文章仅为我个人记录学习进度,文章内容严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标
- 目标:获取网站登录时提交的密码加密的过程
- 地址:oauth.d.cn/auth/goLogin.html
过程分析
首先打开F12,然后在页面上输入账户密码,点击登录,获取到链接
然后看密码部分,已经被加密了,我们点击启动器,然后在里面就可以看到一个可疑的目标
点击蓝色链接跳转进去,可以看到这段代码是在发送get请求,我们下断看看
在此处断下时我们可以看到密码已经被加密了,所以我们往上追
在pwdFormLogin函数开头部分我们可以看到密码还是没有加密的,所以我们在此处断下,步进
在458行发现异常,在控制台输出,确定代码在此调用rsa函数对密码进行加密
鼠标放在rsa上面,点击蓝色链接进去看看
进去就能看到注释写着密码加密部分,然后我们拿下来运行看看
报错,缺少 setMaxDigits ,那我们这个函数的源代码在哪
老样子,鼠标放上去,点击蓝色的链接,跳转进去,BigInt.js 里面的代码关联有点多,我们直接全部复制到我们本地的文件里面(还有一个原因,后面讲)
接下来我们再运行一下看看
RSAKeyPair 报错,我们网页鼠标放上去,然后点击进去看看
看了一下,这个好像是一个开源的库,那我们就直接把它全部复制下来吧,然后复制下来的同时我们还要再复制 BigInt.js 和 Barrett.js 文件里面的内容,因为是这个库要用到的(这就是上面要全部复制的原因)
(复制进去的时候注意顺序,因为是 RSA.js 这个开源库要用到 BigInt.js 和 Barrett.js,所以我们要把BigInt.js 和 Barrett.js 文件里面的代码放在 RSA.js 上面)
最后我们再运行起来,成功输出了,再将结果对比一下浏览器上面的,一模一样,成功获取!