1

我正在尝试使用 scapy 查看通过网络发送的原始 html。我遇到的问题是 tcp 数据包的有效负载没有打印为 ascii。

def sniffer_callback(packet):
    print "[*] Got a packet"
    if(validate_packet(packet)):
            resend_packet(packet)
    else:
            resend_packet(packet)
             print "------------------------------"

def validate_packet(packet):
# Validate whether the packet came from the right domain    
     print "[!] Validating Packet"
      tcp = packet[TCP]
      print  tcp.payload

[*] 收到一个数据包

[!] 验证数据包

HTTP/1.1 200 正常

内容类型:application/json;charset=utf-8

缓存控制:max-age=5

内容编码:gzip

内容长度:121

接受范围:字节

日期:2012 年 10 月 11 日星期四 23:45:45 GMT

年龄:4

连接:保持活动

P3P: CP="CAO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAi IVDi CONi OUR SAMo OTRo BUS PHY ONL UNI PUR COM NAV INT DEM CNT STA PRE"

m�= �0 ��� MSkxqP�A��I�n������F 归 3���/HE����jFn�Vm���xk��ZL��b��m�� ������"h��=�L,�2�Q����

这是我收到的数据包的一个示例,但我想知道如何查看整个数据包而不仅仅是 http 标头。

在此先感谢您的帮助

4

1 回答 1

2

您选择的数据包实际上是使用 gzip 压缩的。注意这个标题:

Content-Encoding: gzip

您应该能够使用gzip模块解压缩它。指南可在以下位置获得:

http://www.diveintopython.net/http_web_services/gzip_compression.html

于 2012-10-11T23:59:17.293 回答