Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在本地获取https包的纯文本?_Linux_Tcpdump - Fatal编程技术网

Linux 如何在本地获取https包的纯文本?

Linux 如何在本地获取https包的纯文本?,linux,tcpdump,Linux,Tcpdump,如何获取从我的程序发送的https包的纯文本?我的系统上有一个tcpdump。谢谢。因为HTTPS上的任何通信都是加密的,所以不可能使用tcpdump嗅探明文 您可以对HTTPS流进行攻击(例如,使用)。但是,这会在您的客户端上产生证书错误。具有一些解密SSL/TLS通信的功能;有关这方面的信息,请参阅。当然,要做到这一点,您需要从您的计算机中获得一些信息(如果您可以解密任意SSL/TLS流量,SSL/TLS将不会非常有用……)。您可以使用tcpdump(确保使用-w捕获流量,以便以pcap格式

如何获取从我的程序发送的https包的纯文本?我的系统上有一个tcpdump。谢谢。

因为HTTPS上的任何通信都是加密的,所以不可能使用tcpdump嗅探明文


您可以对HTTPS流进行攻击(例如,使用)。但是,这会在您的客户端上产生证书错误。

具有一些解密SSL/TLS通信的功能;有关这方面的信息,请参阅。当然,要做到这一点,您需要从您的计算机中获得一些信息(如果您可以解密任意SSL/TLS流量,SSL/TLS将不会非常有用……)。您可以使用tcpdump(确保使用
-w
捕获流量,以便以pcap格式保存跟踪,使用
-s0
捕获数据包中的所有数据)或使用Wireshark。

使用类似Wireshark的命令行工具tshark

用法示例(带有适合我的系统的参数):

当然,用您的接口替换“eth1”。 ssl_debug.log是“以防万一”

您可以解析更多的数据(标题,…)


因为tcpdump和程序在同一个操作系统上,所以我认为必须有一种方法在使用https加密包之前捕获包,不是吗?如果你是说TCP包是“包”,那么不是。TCP包没有填充,然后加密,它填充了加密数据。因此,您永远无法看到TCP级别的内容。您可以将调试器附加到程序,或者更改程序以将流写入文件,在通过SSL连接发送内容之前读取内容。
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"