Python 爬虫进阶必备 | 某财富个股历史数据加解密逻辑分析

举报
xianyuplus 发表于 2021/09/24 09:02:30 2021/09/24
【摘要】 今日网站aHR0cHM6Ly9ndWJhLmVhc3Rtb25leS5jb20vcmFuay9zdG9jaz9jb2RlPTYwMDAzMQ==这个网站来自 NTrach 大佬最近大家是不是放假综合征啊,好像一下对技术文章失去了兴趣。 抓包分析与加密定位经过抓包,可以看到下面这三个包主要返回的数据也存在这三个包里,这三个包返回的数据都是下面这样的形式我们想要分析的是历史数据,所以返回的值是...

今日网站

aHR0cHM6Ly9ndWJhLmVhc3Rtb25leS5jb20vcmFuay9zdG9jaz9jb2RlPTYwMDAzMQ==

这个网站来自 NTrach 大佬

最近大家是不是放假综合征啊,好像一下对技术文章失去了兴趣。

抓包分析与加密定位

经过抓包,可以看到下面这三个包

主要返回的数据也存在这三个包里,这三个包返回的数据都是下面这样的形式

我们想要分析的是历史数据,所以返回的值是var rankHistory = xxxxx

既然要对这个返回值解密,那么逻辑里就要取到rankHistory的值

所以直接检索rankHistory关键词就可以了

接下来定位到文件中的位置,如下

打上断点,刷新一下验证一下我们的想法

可以看到在scriptData = eval(scriptData)这行就已经可以看到明文了

所以往上就可以看到需要分析的函数是window.d(scriptData)

单步进去可以看到,具体的解密方法是下面这个

加密分析

上一部分我们定位到了解密的部分

通过下面这张图,可以大概知道这个解密的方法是 AES 解密

AES 的加解密有以下几个需要关注的地方

1、填充

2、加密模式

3、密钥

4、偏移量

知道上面几点就可以直接用加密库复现,不用一个个扣代码

现在我们根据上面几点在代码里找答案

前面两个,填充还有加密模式比较明显

1、填充 - Pkcs7

2、加密模式 - CBC

现在我们开始找密钥和偏移量

这时候就会有人说,上面那么明显的密钥和偏移量还找个啥啊?

经过分析之后其实这两个就是个摆设

还是要打上断点分析

其实打上断点,还是没办法断到位置

但是这里直接引用了两个变量名si

直接在这个方法里面找定义的位置

可以看到下面两个定义的位置

这里的CJS其实就是Crypto加密库,这里的owindow.CJS

所以这里还要搞明白o.M是用到什么方法

通过验证,i其实就是一个md5经过Crypto.enc.Utf8.parse的结果

既然这样的话,我们用代码复现一下,看是否能搞出结果

很完美,不要被代码忽悠就可以了。

昨天复现的时候一直没有给参数传值,导致一直报错,折腾了好久

附代码截图

我是没有更新就在摸鱼的咸鱼

以上就是今天的全部内容了

收到请回复~

我们下次再见。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。