作為軟件測試工程師,大家在工作中肯定經常會用到各種抓包工具來輔助測試,比如瀏覽器自帶的抓包工具-F12,方便又快捷;比如時下特別流行的Fiddler工具,使用各種web和APP測試的各種場景的抓包分析。但是,今天我要給大家分享的抓包工具,叫做Wireshark,是一款專注於網絡封包分析,相比於其他的抓包軟件有自己的特色和優勢的一款報文捕獲工具。
下載安裝包
去Wireshark的官網,下載這個工具的安裝包:https://www.wireshark.org/download.html
安裝
一路next安裝,最后重啟一下電腦,就可以安裝成功!
運行軟件
安裝完成之后,找到這個文件的桌面快捷方式:
雙擊打開運行軟件:
打開即可看到如上圖的界面。我們來認識一下這個軟件的基本界面。
1、Wireshark這個工具是基於接口抓包的。
如果電腦主機上有多個網絡接口的話,可以點擊’標號1‘的按鈕,選擇對應的網絡接口抓取對應的報文。
如上是點擊按鈕1 出現的所有接口列表,一般選擇自己的上網的接口,或者關心的流量通過的接口,然后點擊’開始‘按鈕,即可開始抓包。
2、除了上面的方法開始抓包之外,還可以在2區域+3按鈕開始抓包。
在區域2,也可以看到所有的網絡接口,同樣選擇自己需要抓取的接口,然后點擊按鈕3,也可以開始抓取報文。
抓包
經過上述操作之后,Wireshark工具已經開始抓取報文了,此時用瀏覽器訪問你測試的web頁面,交互的報文就會被全部抓取,如下圖所示。
首先,來認識一下頁面上方的幾個常用功能。
區域1,表示當前工具正在捕獲報文,在抓包進行時;區域2有兩個按鈕,紅色的按鈕,表示停止抓包,點擊后即可停止捕獲;綠色按鈕,表示重新抓取報文,點擊后會提示是否保存:
根據自己的需求選擇保存或者不保存報文,然后工具會清除之前的報文重新開始抓取;區域3,是為了過濾用戶關心的報文,有一定的過濾規則。我們來羅列一些常用的過濾使用方法。
1)過濾源IP以及目的IP:
在wireshark的過濾規則框Filter中輸入過濾條件。
如查找目的地址為120.24.89.47 的包,ip.dst==120.24.89.47;查找源地址為192.168.1.37的包,ip.src==192.168.1.37。
2)端口過濾:
如過濾80端口,在Filter中輸入,tcp.port==80,這條規則是把源端口和目的端口為80的都過濾出來。
使用tcp.dstport==80只過濾目的端口為80的,tcp.srcport==80只過濾源端口為80的包。
3)協議過濾:
比較簡單,直接在Filter框中直接輸入協議名即可,如過濾HTTP的協議,TCP協議等。HTTP模式過濾。
如過濾get包,http.request.method=="GET",過濾post包,http.request.method=="POST"。
4)連接符and的使用。
過濾兩種條件時,使用and連接,如過濾ip為192.168.1.37並且為tcp協議的,ip.src==192.168.1.37 and tcp。
報文分析
抓取並且過濾出相應的報文,我們就可以開始進行詳細的報文分析了。雙擊其中一個報文,即可打開這個報文的詳細內容,如下圖所示:
第一層Frame I:TCP/IP 協議棧中的物理層
第二層Ethernet II:TCP/IP 協議棧中的數據鏈路層,也就是現實網卡的源目MAC地址,依據這部分信息來做二層轉發;
第三層Internet Protocol : TCP/IP 協議棧中的網絡層,發明了IP協議,所以報文在這一層會帶上源目IP地址。
第四層 Transmission Control Protocol: TCP/IP 協議棧中的傳輸層,定義了TCP協議和UDP協議,以及定義了端口的概念。所以在這一層的安博文,會帶上協議的源目端口。
總結
以上是Wireshark這個抓包工具的基本使用方法,后面我會再出系列文章,詳細分析一些大家工作中比較常用的協議,來幫助大家定位和分析測試工作中的問題!