从 Scapy 数据包中提取 GET 请求内容



我们正在解析通过 tcpdump 命令创建的 pcap 文件。在这些pcap文件中,我们尝试在Raw字段中提取GET请求信息,并以可读格式打印。

pkts = rdpcap(filename)
for pkt in pkts:
    if Raw in pkt:
        raw_test = pkt[Raw].load
        if "GET" in raw_test:
             #do stuff

生成的raw_test文本如下所示: ▒פ▒▒▒▒▒▒2▒nk▒N▒▒bEr▒▒(|▒▒▒▒Ǫ=▒▒Ih▒H+%▒2.▒L[▒▒▒sl▒E▒▒▒k6▒]=މf▒d▒O▒hB{6s▒▒▒7O2!PCG&▒A.4I▒耓▒X▒▒▒W]▒▒M5@▒▒▒vK▒#Ċ▒ ▒▒▒m]Zb_▒8▒▒▒nb~ ]▒h▒6▒.̠▒49ؾG?▒▒▒4▒Ӹ▒▒G▒▒́G▒:Y▒▒▒▒.▒8▒▒d▒i4▒JAC)▒▒AO▒k▒z-▒▒S30▒X?▒▒W5B▒yW▒m▒▒▒/ƈ:G▒▒▒E▒▒<▒▒▒m▒]▒▒▒▒t▒:▒▒▒Ŕ▒W▒▒D▒E▒▒▒▒▒࿄▒▒zZ▒▒x▒]▒▒{{▒▒u▒){▒▒o▒▒G▒F▒▒▒▒▒v ▒▒▒b.

我们也尝试通过pkt.sprintf(“{Raw:%Raw.load%}n”)格式化它,但这产生了相同的输出

附言请不要将我们链接到其他相关的堆栈帖子/问题,因为我们已经遇到了其中的许多帖子/问题,而且它们似乎都没有解决我们的问题。

提前感谢您,任何帮助将不胜感激!

请尝试一下,我假设http针对端口80

if TCP in pkt and pkt[TCP].dport == 80 
            and pkt[TCP].load.startswith("GET") :
        print pkt[TCP].load

最新更新