#Wireshark提供了兩種過濾器:
1、捕獲過濾器
捕獲過濾器:在抓包之前就設定好過濾條件,然后只抓取符合條件的數據包。
2、顯示過濾器
顯示過濾器:在已捕獲的數據包集合中設置過濾條件,隱藏不想顯示的數據包,只顯示符合條件的數據包。
使用捕獲過濾器的主要原因就是性能。如果你知道並不需要分析某個類型的流量,那么可以簡單地使用捕獲過濾器過濾掉它,從而節省那些會被用來捕獲這些數據包的處理器資源。當處理大量數據的時候,使用捕獲過濾器是相當好用的。
Wireshark攔截通過網卡訪問的所有數據,前提是沒有設置任何代理。Wireshark不能攔截本地回環訪問的請求,即127.0.0.1或者localhost。
#過濾器具體寫法-顯示過濾器寫法
1、過濾值比較符號及表達式之間的組合
2、針對ip的過濾
對源地址進行過濾
ip.src == 192.168.0.1
對目的地址進行過濾
ip.dst == 192.168.0.1
對源地址或者目的地址進行過濾
ip.addr == 192.168.0.1
如果想排除以上的數據包,只需要將其用括號囊括,然后使用 “!” 即可
!(ip.addr == 192.168.0.1)
3、針對協議的過濾
獲某種協議的數據包,表達式很簡單僅僅需要把協議的名字輸入即可
http
注意:是否區分大小寫?答:區分,只能為小寫
捕獲多種協議的數據包
http or telnet
排除某種協議的數據包
not arp 或者 !tcp
4、針對端口的過濾(視傳輸協議而定)
捕獲某一端口的數據包(以tcp協議為例)
tcp.port == 80
捕獲多端口的數據包,可以使用and來連接,下面是捕獲高於某端口的表達式(以udp協議為例)
udp.port >= 2048
5、針對長度和內容的過濾
針對長度的過慮(這里的長度指定的是數據段的長度)
udp.length < 20
http.content_length <=30
針對uri 內容的過濾
http.request.uri matches "user" (請求的uri中包含“user”關鍵字的)
注意:matches 后的關鍵字是不區分大小寫的!
http.request.uri contains "User" (請求的uri中包含“user”關鍵字的)
注意:contains 后的關鍵字是區分大小寫的!
6、針對http請求的一些過濾實例。
過濾出請求地址中包含“user”的請求,不包括域名;
http.request.uri contains "User"
精確過濾域名
http.host==baidu.com
模糊過濾域名
http.host contains "baidu"
過濾請求的content_type類型
http.content_type =="text/html"
過濾http請求方法
http.request.method=="POST"
過濾tcp端口
tcp.port==80
http && tcp.port==80 or tcp.port==5566
過濾http響應狀態碼
http.response.code==302
過濾含有指定cookie的http數據包
http.cookie contains "userid"
#過濾器具體寫法-捕捉過濾器寫法
在wireshark的工具欄中點擊捕獲 →捕獲過濾器,可以看到一些過濾器的寫法,如下圖:
1、比較符號
與:&&或者and
或:||或者or
非:!或者not
實例:
src or dst portrange 6000-8000 && tcp or ip6
2、常用表達式實例
源地址過濾
src www.baidu.com
目的地址過濾
dst www.baidu.com
目的地址端口過濾
dst post 80
協議過濾
udp