某网站加密参数分析

目标地址:aHR0cDovL3ljLndzd2oubmV0L2Foc3h4L0xPTC9wdWJsaWMvcHVibGljLmh0bWw=

直接请求,加密参数有这么多个
QQ截图20211103102056.png
以及返回数据,同样需要解密
image.png
任务很明确,加密与解密

简单粗暴全局搜索,很遗憾,这种方法在这里是无效的,搜不到任何一个关键字,原因是关键的JS都是异步加载的,在浏览器的source面板中看不到,搜索的时候,浏览器默认不会搜匿名的JS文件。有两种办法:

  1. 从调用堆栈入手
    QQ截图20211103115701.png
    直觉告诉我,点进去那个go函数,然后,看下代码,很容易找到断点位置
    QQ截图20211103115817.png
    再发次请求,直接断下来,加密的所有逻辑都在paramEncode函数里,同时在下面几行代码还可以看到successCall,拿到请求之后解密,一举两得
    paramEncode.png
    跟进去之后,整个waterSecurity对象负责所有加密扣出来稍微改改就好了,然后我们会发现只解决了第一个请求部分参数的加密,第二个请求比第一个请求多了几个参数
    在第一个请求发送完之后,继续跟进会发现一些关键字即paramEncode,这就是剩下的加密位置了
    btime.png
    到这里所有的参数都解决了。

运行结果:result.png

整个过程相对还是简单,写这篇文章的目的有两个:

  1. 浏览器异步加载JS
  2. 关于全局搜索,其实浏览器可以开启搜索匿名JS文件的功能,那么在VM中的JS代码也能被搜到了,这是我在解决这个网站之后才发现的。。在谷歌浏览器右上角的设置,然后source开始匿名JS搜索功能就可以了。
    globalsearch.png

代码:Github

Q.E.D.


一切很好,不缺烦恼。