首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

查策网返回值 data 解密逻辑分析

今日网站

aHR0cHM6Ly93d3cuY2hhY2V3YW5nLmNvbS9jaGFueWUvaW5kZXg=

无限 Debugger绕过

打开控制台,就进入 debugger 模式了

直接右键 Never Pause Here 就可以了

抓包分析

绕过反调试,刷新页面,可以看到如下的请求包

请求的参数没有什么好分析的,都是明文,主要是返回的内容是加密的

加密定位

先用上 xhr 断点,找到发包的位置,然后向上翻

可以看到处理 response 的逻辑

在这个位置打上断点,然后放过断点让逻辑运行

可以看到这里的 n 就是请求的返回值

然后继续向下分析,直到这个逻辑

这里是对 page_set 的解密

继续向下,就是对返回值内容的解密

继续跟进去,看到这里的解密是一个 AES CBC 解密

p 上面的变量操作基本都是对 key iv 的处理,所以需要逐个分析一下

加密分析

首先是解密的密钥 c

c 的生成逻辑如下

e = r.decode(t) a = e.slice(0, 10) n = l(a, e) s = n.slice(0, 32) c = i.default.enc.Utf8.parse(s)

点进 decode 方法,里面是一大堆对于返回值的处理

看了一下decode逻辑主要是对返回的字符串进行一些字符的替换,然后再调用了 atob,其实就是base64解码

这里的 a = e.slice(0, 10) 就是获取了解码结果的前 10 的字符然后和解码的结果一块进入 l 计算

这里的 l 主要是对解码的结果进行遍历hex ,每次的hex 的结果都拼接起来

拼接的结果取前 48位作为结果返回

之后的 s 就是对 l 的结果切割取值,在之后的步骤就是 CryptoJS 的常规操作

直接导入 CryptoJS 包就可以

npm install crypto-js

简单使用 js 复现一下解密的逻辑

这样就得到解密好的结果了

Python 请求全流程

用 Python 请求结果如下

这个站点在 page 的部分好像还动态加载了字体文件,不知道是否还有对字体做了一些操作

本次操作是在未登录状态下的测试,不知道在登录状态下是否还有其他不同的操作,感兴趣的朋友可以拓展测试一下

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_QcOJ_sezd8a0mKgBwvDl4Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券