如何获取我程序发送的https包的纯文本?我的系统上有一个tcpdump。谢谢。
使用tshark,一种类似wireshark的命令行工具。
示例用法(具有适合我的系统的参数):
tshark -i eth1 port 443 -o "ssl.keys_list:any,443,http,/path/to/your/server.key" -o ssl.debug_file:"/home/your_user/ssl_debug.log"
当然,用您的界面替换“ eth1”。ssl_debug.log是“以防万一”。
您可以解析更多数据(标题,.. like this
)由于对HTTPS上的任何流量进行了加密,因此无法使用tcpdump嗅探纯文本。
您可以对HTTPS流进行man-in-the-middle攻击(例如,使用Fiddler)。但是,这会使您的客户端出现证书错误。
Wireshark具有解密SSL / TLS流量的功能;有关此信息,请参见the SSL page in the Wireshark Wiki。当然,您需要从计算机中获取一些信息才能执行此操作(如果可以解密任意 SSL / TLS通信,则SSL / TLS不会很有用...)。您可以使用tcpdump捕获流量(请确保使用-w
捕获,以使跟踪以pcap格式保存,并使用-s 0
捕获,以捕获all数据包中的数据)或Wireshark。