参数加密逻辑分析
先来抓包看看参数,如下图:
这个参数的值看着像 Base64,不要着急下定论,先搜索参数名试试看。
经过搜索参数名 password: 在文件中定位到3处疑似加密的位置。如下图。
这里有两种方法判断加密位置:
- 给所有搜索到的结果位置打上断点,再次点击按钮看看进入到哪个断点当中。
- 阅读上下文,观察分析大概的代码逻辑。(留意相关的变量名)
这里使用第一种方法,打上断点重新请求,可以看到成功断上了。
这里的 this.password 是测试的密码,我么需要分析的就是这个 this.encrypt 的逻辑是怎样的。
进入到 this.encrypt 函数中,发现了熟悉的RSA加密的标志 this.publicKey
在文件中再搜索 publicKey,能够看到文件中已经声明了这个变量。
继续进函数内部看看逻辑,发现进入里面就是加密的逻辑代码了。
在整个流程分析下来,可以发现前面的传参部分,可以完全跳过,只要在JS加密逻辑代码中传入 publicKey 和 明文密码 就可以得出加密之后的密码了。
参数加密代码实现
接上面的,直接复制上面截图所示的全部代码。
然后在编辑器中这么写:
注意:前一千多行都是复制 js文件代码
接着运行一下,看看报错。
运行的报错提示,window is undefine,遇到这种情况我们可以试试在代码上加上window的声明。
再次运行看看,这里又提示 navigator is not defined
这里我们在代码里重新声明 navigator 。
再次运行就得到加密后的结果辽~~~。
总结
这次的加密是比较简单的RSA加密,使用文件中包含的公钥对密码的值进行加密,且Js代码没有进过混淆,适合新手练手增加手感。