某网站加密参数分析
目标地址:aHR0cDovL3ljLndzd2oubmV0L2Foc3h4L0xPTC9wdWJsaWMvcHVibGljLmh0bWw=
直接请求,加密参数有这么多个
以及返回数据,同样需要解密
任务很明确,加密与解密
简单粗暴全局搜索,很遗憾,这种方法在这里是无效的,搜不到任何一个关键字,原因是关键的JS都是异步加载的,在浏览器的source面板中看不到,搜索的时候,浏览器默认不会搜匿名的JS文件。有两种办法:
- 从调用堆栈入手
直觉告诉我,点进去那个go函数,然后,看下代码,很容易找到断点位置
再发次请求,直接断下来,加密的所有逻辑都在paramEncode函数里,同时在下面几行代码还可以看到successCall,拿到请求之后解密,一举两得
跟进去之后,整个waterSecurity对象负责所有加密扣出来稍微改改就好了,然后我们会发现只解决了第一个请求部分参数的加密,第二个请求比第一个请求多了几个参数
在第一个请求发送完之后,继续跟进会发现一些关键字即paramEncode,这就是剩下的加密位置了
到这里所有的参数都解决了。
运行结果:
整个过程相对还是简单,写这篇文章的目的有两个:
- 浏览器异步加载JS
- 关于全局搜索,其实浏览器可以开启搜索匿名JS文件的功能,那么在VM中的JS代码也能被搜到了,这是我在解决这个网站之后才发现的。。在谷歌浏览器右上角的设置,然后source开始匿名JS搜索功能就可以了。
代码:Github
Q.E.D.