我在Windows上使用python 2.7.15,scapy和scapy-http。 我想嗅探所有http数据包并提取发送的html页面。 这是我使用的代码:
from scapy.all import *
import scapy_http.http
def printPacket(packet):
if packet.haslayer('HTTP'):
print '='*50
print packet.show()
sniff(prn=printPacket)
但是由于某种原因,它只捕获了一些http数据包(当我使用浏览器时,我看不到任何数据包),并且在它打印的那些代码中也看不到任何html代码。
答案 0 :(得分:0)
我认为这是因为发送的某些流量是HTTPS(= HTTP + TLS)。在您的函数中,您希望使用HTTP应用程序层,该应用程序层在TLS层中进行了封装和加密,因此不匹配。
要嗅探HTTPS,可以使用以下命令:https://github.com/tintinweb/scapy-ssl_tls(我还没有尝试过)。