Python 爬虫进阶必备 | 某行业研究数据库的返回值加密分析

咸鱼学Python

共 1011字,需浏览 3分钟

 ·

2021-11-17 00:04

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

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


图源:极简壁纸

今日网站

aHR0cHM6Ly93d3cuaGFuZ2hhbmdjaGEuY29tL2FnZW5jeS10aW1pbmc=

这个站是返回值加密,写出来就是图个乐呵,毕竟做企业信息查询还是头部的两家给力,信息时效性更高。

加密定位

可以看到请求返回的值中data部分是加密的

这个时候切换到Initiator选项卡,可以看到这个请求的调用过程

除了上面的方法之外,根据请求的类型也可以选择是否使用 xhr 断点调试的方式找到加密

通过分析堆栈可以在feachData的位置找到解密的代码

打上断点可以看到e的位置就是请求返回的内容

并且在下一行代码就是明文了

所以整个解密的逻辑就在c["a"].decrypt()

加密分析

重新刷新,在c["a"].decrypt()的位置重新单步进去

可以看到下面的逻辑

这个逻辑的代码就很清晰了

我们直接按照之前教的三要素就可以自己重写这个解密了

1、密钥

就是上面的三个常量拼接出来的字符串

2、填充模式是pkcs7

3、ECB 模式

知道这几个要素,我们在 Python 还原一下这个解密的过程

import base64
from Crypto.Cipher import AES
encryptData = "h+Eh4yR7ppy1uly1B/m..................WvqJ7Tr8qjavnh8e"
key = '3sd&d24h@$udD2s*'.encode()
cipher = AES.new(key, mode=AES.MODE_ECB)
data = str(cipher.decrypt(base64.b64decode(encryptData)),encoding='utf8')
print(data)

这样就可以解密了。

最近在跟着龙哥学 App ,更新频率下降,希望之后能够给大家带来高质量的 APP 安全相关的文章。

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

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

收到请回复~

我们下次再见。

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

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报