这次要研究的网站采用的是rsa加密以及xxtea。
这里先复习下上一篇讲过的调试流程基础版:
以上就是上篇文章调试的核心流程,接下来我们继续用实战案例练习一下。
先看下要解析的加密参数,记住流程的前几点:
接下来搜索参数,分析可能存在加密代码的js文件:
尝试了上面流程里面列举的可能的参数名,并没有发现有用的信息,所以试了下直接搜索password
关键字,找到一个可能和登陆相关的文件,搜索发现疑似的加密代码:
先测试打个断点试试:
成功进入断点接下来,就是缺啥找啥补齐就可以了,强烈建议大家下载一个webstorm
,方便调试。
我们先把代码里面的值填写一下,运行看看报错是什么:
根据报错我们找找这里的RSAKey在哪里,不知道如何查找可以将鼠标悬停在对应位置即可根据提示找到对应的代码。
反复操作即可,缺啥找啥直至js文件无报错即可。
咸鱼找了一些简单网站,查看了对应的RSA加密的方法,总结了以下套路:
“微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA)都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。 XXTEA是其最新的变种,于1998年提出。目前还没有人找到对其进行攻击的方法,是对前面一些变种的改进。XXTEA 算法很安全,而且非常快速,非常适合应用于 Web 开发中。 以上引用自https://my.oschina.net/mickelfeng/blog/109388
介绍完 XXTEA 我们先看看加密案例网站是什么样子的:
可以看到传输的参数都是加密后的密文,像这类加密我们可以参考提交表单中的id,class等,查看密码框的id后,全局搜索pass
:
找到疑似代码的位置,不确定可以打上断点测试一下,通过断点发确认加密位置:
接下来就是缺啥补啥的过程,经过解密发现这个网站加密过程是一个xxtea.base64的加密。
对比上一篇文章的base64的加密其实区别不大,但是在解密过程中需要思路的转变。
以上就是咸鱼对js解密的案例练习,希望对你有所帮助。