7

JS逆向-AQI正文加密逻辑分析

 2 years ago
source link: http://xianyucoder.cn/2020/02/28/%E6%AF%8F%E6%97%A5JS-AQI%E6%AD%A3%E6%96%87%E5%8A%A0%E5%AF%86/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

JS逆向-AQI正文加密逻辑分析

发表于

2020-02-28

|

更新于 2020-09-24

| 分类于 js逆向

| 评论数:

| 551次阅读

本文字数: 2.7k

|

阅读时长 ≈ 5 分钟

IGh0dHBzOi8vd3d3LmFxaXN0dWR5LmNuLw0K

还是上次的那个网站,上一篇分析了关于反爬的绕过,在正文里随口提了一句说这个网站关于正文加密的部分很简单,晚上就收到几位读者的私信,希望能够讲讲关于正文的加密是如何解密的。

所以,我来了。

还是老样子,先打开网站,这里关于如何过反爬,直接参考上一篇的内容,这里不做重复了。

打开控制台之后,重新加载一下页面,捕捉请求。【图2-1】

可以看到有一条xxxapi的请求链接,可以看到请求参数也加密了。【图2-2】

除了参数之外,同样这个请求的返回值同样也是密文的。【图2-3】

经过请求分析,明确了现在要分析的加密是参数和返回值。

加密参数分析

先开始关于参数的分析。

通过多次加载请求,发现所有的参数加密的名字都是不相同的,所以全局检索参数名定位到参数加密的可能性很小。所以直接用 XHR 断点。【图3-1】

重新加载页面,加载数据就断上了。

可以看到这里是请求发起的地方,数据已经加密好了。【图3-2】

所以需要分析堆栈,在【图3-3】所示的位置,我们找到了生成好的参数。

在这里可以看得到,参数是经过pxteFCahl这个方法生成的。【图3-4】

追进去可以看到参数的生成逻辑了。【图3-5】

加密参数就是将相关的参数哈希之后再 Base64 编码的结果,如果直接用 Python 复写需要注意 NodeJS 与 Python 的关于 Json 转化是有一点点区别的。

如果搞不明白的可以直接扣一下代码,对新手友好。

返回值解密

分析完加密参数后,再来看看返回值是如何解密的。

在上一部分,我们定位到了加密参数生成的地方,在生成的位置下方就是加密返回值解密的位置。

在 Ajax 中,发起请求后,可以根据请求的结果执行不同的操作,这里在请求成功后,执行了结果的解密。【图4-1】

上图的daA0vPWcfr2就完成了返回结果的解密,我们可以追进去看看他的逻辑。【图4-2】

可以看到这个逻辑也是很简单的,加密的结果先后经过 AES + DES + BASE64 的解密/解码就可以得到明文的代码了。

并且相关的秘钥都可以直接检索得到。【图4-3】

这类简单的加密代码,扣取起来难度很低,也可以用 Python 直接复写。

简单扣取之后,就可以直接将加密的返回值带入运算了。【图4-4】

这个网站还是比较适合新手练手,加密的难度相比上一个版本略有下降,更多的是对浏览器使用方面的考察。

没有动手扣过代码的可以试试扣取一下代码,非常适合新手动手实践。

煌金 wechat
扫描关注公众号,回复「1024」获取为你准备的特别推送~
  • 本文作者: 煌金 | 微信公众号【咸鱼学Python】
  • 本文链接: http://www.xianyucoder.cn/2020/02/28/每日JS-AQI正文加密/
  • 版权声明: 本博客所有文章除特别声明外,均采用 许可协议。转载请注明出处!
  • 并保留本声明和上方二维码。感谢您的阅读和支持!

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK