2017-06-21 225 views
0

我想爲包含HTTP數據的數據包做一個過濾器,但我沒有關於如何這樣做的線索。使用Scapy來填充HTTP數據包

I.E.有沒有一種方法可以使用只有HTTP的Scapy來過濾數據包?

任何幫助表示讚賞。

回答

1

是有,與.haslayer功能和位解析:

methods=['GET','POST','HEAD','PUT','DELETE','CONNECT','OPTIONS','TRACE']#Define http methods 
s=sniff(1)#sniff one packet to parse you can put this in a loop 
a=[] 
a.append(s[0]) 
if a[0].haslayer(TCP):#Checks for TCP protocol 
if a[0].dport == 80:#Checks for http port 80 
    if a[0].haslayer(Raw):#Checks if packet has payload 
    r=a[0][0][Raw].load 
    for i in methods:#Checks if any of the http methods are present in load, if there are it prints to screen 
    if i in r: 
    print r 
1

是的,你可以。您可以通過TCP端口80進行過濾(檢查每個數據包或使用BPF),然後檢查TCP有效負載以確保存在HTTP標頭。