首页 文章详情

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

咸鱼学Python | 332 2022-01-29 23:21 0 0 0
UniSMS (合一短信)

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!


cc26aaf0cc6d78db4bc2f3db66469eac.webp

图源:极简壁纸

今日网站

aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9wcm9qZWN0U2VjUGFnZS8jL2NxenI=

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

蛮简单的

抓包分析与加密定位

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

54fc71ca17d687cee715a62c83759be1.webp

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

4991c722913f1349109cc76c76083939.webp

所以一个个分析看看

先分析请求参数

这里直接打上个xhr断点

2a8e2b95666d57cf737906c73d59a216.webp

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

973f41cf8383909bb8e9d1ef56dc5771.webp

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

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

dedfa7d5bcb00767ce659a9db4c30ef0.webp

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

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

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

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

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

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

3d73c6160e9e9334436d4cb532184dc8.webp337bdecd058dc2c5ab6381b7a71024db.webpf6cc4804dfdb0f016c93211469b555ad.webp

这里就是数据解密的位置

加密分析

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

f7e2d67c6e3ed29367ec979870374b16.webp

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

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

7ce5f1cd1ead33023f498b3c02354069.webp

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

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

af41dec364403eeb78baf8e8837d8cc5.webp

是可以正常解密的

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

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

347e36a2778f0f55782ac02e9442729b.webp

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

c1475beac6e78024ed3558cd1773b068.webp

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

c90f9b961b52b432678494ad54a9c066.webp

完事~

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

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

收到请回复~

我们下次再见。

90c669d6a03b2ab73dcb8e01ba3430ff.webp对了,看完记得一键四连,这个对我真的很重要。

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter