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

2021-11-17 12:58:43 浏览数 (1)

今日网站

aHR0cHM6Ly93d3cuaGFuZ2hhbmdjaGEuY29tL2FnZW5jeS10aW1pbmc=

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

加密定位

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

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

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

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

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

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

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

加密分析

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

可以看到下面的逻辑

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

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

1、密钥

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

2、填充模式是pkcs7

3、ECB 模式

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

代码语言:javascript复制
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)

这样就可以解密了。

0 人点赞