背景介绍:
首先,https双向加密的,如果需要解密数据,除非知道 客户端/服务器 任何一方私钥!否则无法解密,常用手段:
基于中间人攻击抓包。使用fiddler 或 charles ,实现的是中间人代理,将客户端私钥改为 fiddler 或 charles 的私钥,每次通信使用中间代理人的私钥加密,服务器就可以通过公钥解密。
wireshark 是基于网络层的抓包工具,通过捕获通信双方的TCP/IP包实现内容提取。对于应用层的数据,如果应用层协议是公开的,就可以直接显示数据。处理HTTPS 协议时,因为不知道客户端、服务端的私钥,所以对应的数据不可见。 也就是说,如果 wireshark 能够获取私钥,就能显示HTTPS的通信数据。
利用chrome浏览器实现对https的抓包:
- 配置环境变量
SSLKEYLOGFILE C:\Users\admin\sslkey.log
- 注:
这个环境变量用的时候添加,不用记得删掉。因为它在其他程序运行时可能给你带来异常:OPENSSL_Uplink(XX……XX,08): no OPENSSL_Applink
详情 https://blog.csdn.net/qq_17328759/article/details/127802435
2. 打开chrome浏览器,检查对应目录下是否已经创建了sslkey.log
3. 配置 wireshark 的首选项,编辑–首选项–protocols–TLS:
4. 开启 wireshark 抓包