前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫进阶必备 | 某地方产权交易中心返回数据解密逻辑分析

Python 爬虫进阶必备 | 某地方产权交易中心返回数据解密逻辑分析

作者头像
咸鱼学Python
发布2022-03-29 17:33:15
4240
发布2022-03-29 17:33:15
举报
文章被收录于专栏:咸鱼学Python

今日网站

aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9wcm9qZWN0U2VjUGFnZS8jL2NxenI=

这个站来自咸鱼技术交流 4 群

蛮简单的

抓包分析与加密定位

打开目标页,点击下一页,可以捕获到下面的请求

除了请求参数是加密之外,请求的结果也是加密的需要解密

所以一个个分析看看

先分析请求参数

这里直接打上个xhr断点

然后继续点击下一页,可以看到请求会断在send的位置

这个时候h就是请求参数加密后的结果,所以我们需要向上分析堆栈,分析参数是在什么位置加密的

向上分析堆栈可以找下面的位置

可以看到s是提交的参数,经过了aes.encode就变成密文了

所以aes.encode就是请求参数的加密位置

现在来定位下返回值解密的地方

在上一步,我们分析出了关于请求参数的加密位置,xhr断点位置的位置是send,也就是请求数据发出的地方

当我们请求发出之后应该就是获取response并处理的地方了,所以我们还是从xhrsend分析,不过这次是继续执行,而不是回溯堆栈

继续执行几步就可以发现下面的逻辑

这里就是数据解密的位置

加密分析

先看数据解密的部分,正好断点也在这里,我们直接单步进去分析,看看decryptCode做了什么操作

单步进来之后可以看到上面的js逻辑,看了一下js中用到的逻辑,基本都是开头定义的变量,有几个是this.xxx这样形式的变量,所以看下这里的this是那个对象

可以看到这里的this.stringxxxx指向的是

所以我们只要构造e这个对象,在调用的时候实例化一下就可以直接调用了

这里直接把e在整个function扣出来,然后调用一下decryptCode看是否能够返回明文

是可以正常解密的

现在来看看请求参数的加密是什么逻辑

进入aes.encode后,可以看到这里的调用的是encode

和上面解密调用的是同一个对象下的不同方法,所以直接调用一下就完事了

这里整合一下放到python中请求一下

完事~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日网站
    • 抓包分析与加密定位
      • 加密分析
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档