Python爬虫进阶--js逆向-某笔网密码加密分析

Python爬虫进阶--js逆向-某笔网密码加密分析_第1张图片

参数加密逻辑分析

先来抓包看看参数,如下图:
Python爬虫进阶--js逆向-某笔网密码加密分析_第2张图片
这个参数的值看着像 Base64,不要着急下定论,先搜索参数名试试看。
Python爬虫进阶--js逆向-某笔网密码加密分析_第3张图片
经过搜索参数名 password: 在文件中定位到3处疑似加密的位置。如下图。
Python爬虫进阶--js逆向-某笔网密码加密分析_第4张图片
这里有两种方法判断加密位置:

  • 给所有搜索到的结果位置打上断点,再次点击按钮看看进入到哪个断点当中。
  • 阅读上下文,观察分析大概的代码逻辑。(留意相关的变量名)

这里使用第一种方法,打上断点重新请求,可以看到成功断上了。
这里的 this.password 是测试的密码,我么需要分析的就是这个 this.encrypt 的逻辑是怎样的。
Python爬虫进阶--js逆向-某笔网密码加密分析_第5张图片
进入到 this.encrypt 函数中,发现了熟悉的RSA加密的标志 this.publicKey
在这里插入图片描述
在这里插入图片描述
在文件中再搜索 publicKey,能够看到文件中已经声明了这个变量。
Python爬虫进阶--js逆向-某笔网密码加密分析_第6张图片
继续进函数内部看看逻辑,发现进入里面就是加密的逻辑代码了。
Python爬虫进阶--js逆向-某笔网密码加密分析_第7张图片
在整个流程分析下来,可以发现前面的传参部分,可以完全跳过,只要在JS加密逻辑代码中传入 publicKey 和 明文密码 就可以得出加密之后的密码了。

参数加密代码实现

接上面的,直接复制上面截图所示的全部代码。

然后在编辑器中这么写:
Python爬虫进阶--js逆向-某笔网密码加密分析_第8张图片
注意:前一千多行都是复制 js文件代码

接着运行一下,看看报错。

运行的报错提示,window is undefine,遇到这种情况我们可以试试在代码上加上window的声明。
Python爬虫进阶--js逆向-某笔网密码加密分析_第9张图片
Python爬虫进阶--js逆向-某笔网密码加密分析_第10张图片
再次运行看看,这里又提示 navigator is not defined
Python爬虫进阶--js逆向-某笔网密码加密分析_第11张图片
这里我们在代码里重新声明 navigator 。
Python爬虫进阶--js逆向-某笔网密码加密分析_第12张图片
再次运行就得到加密后的结果辽~~~。
Python爬虫进阶--js逆向-某笔网密码加密分析_第13张图片

总结

这次的加密是比较简单的RSA加密,使用文件中包含的公钥对密码的值进行加密,且Js代码没有进过混淆,适合新手练手增加手感。

欢迎点赞,留言,转发,转载,感谢大家的支持

你可能感兴趣的:(js加密逆向分析)