Python 爬虫进阶必备 | 某行业研究数据库的返回值加密分析
咸鱼学Python
共 1011字,需浏览 3分钟
·
2021-11-17 00:04
第一时间关注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 安全相关的文章。
好了,以上就是今天的全部内容了。
我是没有更新就在摸鱼的咸鱼
收到请回复~
我们下次再见。
对了,看完记得一键四连,这个对我真的很重要。
评论