声明
文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!
如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!
网站链接
aHR0cHM6Ly9obnNlaS5jbi9obnRqL21lbnUvMy8xNA==参数分析
随便点进一个xhr链接,能发现请求参数与响应内容都做了加密
加密分析
常规思路是xhr断点,逐步向上跟栈,但是这个网站使用了异步请求+拦截器。使得定位比较困难,比较简单的方法是Hook或是搜索关键词interceptors都可以轻松定位到。
分别对应请求拦截器与响应拦截器,通过图中的代码也可以看到,请求时调用了Object(U["b"])(e.data))去加密请求体,响应时则调用了JSON.parse(Object(U["a"])(e.data))函数进行解密并且反序列化。
Axios拦截器 – 请求拦截器和响应拦截器-CSDN博客
看了上面的代码就知道为什么可以Hook了,同时附上Hook代码。
(function(){letparseCache=JSON.parse;JSON.parse=function(params){console.log("Hook JSON.parse => ",params);debugger;returnparseCache(params);};})();(function(){letstringifyCache=JSON.stringify;JSON.stringify=function(params){console.log("Hook JSON.stringify => ",params);debugger;returnstringifyCache(params);};})();比较推荐使用使用油猴脚本去执行,比较方便。
这次再向上跟栈就方便很多了,可以轻松的定位到拦截器的位置。
再跟进去查看一下。
看着像是常规的AESCBC加密,各种语言都有常用的库可以直接使用。
最后
值得学习的点在于Hook的使用以及拦截器的作用,友好型网站无疑了。