本文章轉(zhuǎn)載于搜狗測試
通過Wireshark、Charles、Burpsuite等工具分析網(wǎng)絡(luò)流量的過程漾橙,又叫做抓包询件。
為何需要抓包
測試手機(jī)應(yīng)用(如搜狗號碼通燃乍、搜狗手機(jī)瀏覽器)的功能時,經(jīng)常遇到與網(wǎng)絡(luò)交互的場景宛琅,這時候我們往往需要通過分析客戶端與服務(wù)端的網(wǎng)絡(luò)交互來分析客戶端的功能刻蟹、定位BUG的原因(是來自客戶端還是服務(wù)端)、解釋不正常的客戶端表現(xiàn)等等嘿辟,而通過一般的測試手段并不能直接的分析手機(jī)發(fā)出的網(wǎng)絡(luò)請求(主要是現(xiàn)階段尚沒有運行于Android或iOS的網(wǎng)卡分析工具)舆瘪。
但是在PC或Mac上我們很容易通過不同軟件(如本文介紹的Wireshark)來截獲網(wǎng)卡的請求來分析,為此红伦,我們可以通過在PC或者M(jìn)ac上建立一個Wifi熱點介陶,然后用手機(jī)連接該熱點,來通過分析該發(fā)射熱點網(wǎng)卡的請求分析手機(jī)的請求色建。
如何建立一個Wifi熱點
簡單的原理和具體方法(Windows下和mac下抓包)如下:
首先要在PC/Mac上利用USB網(wǎng)卡建立無線Wi-Fi熱點哺呜;
安裝Wireshark抓包工具;
用手機(jī)連接對應(yīng)的Wi-Fi箕戳;
手機(jī)端觸發(fā)相關(guān)網(wǎng)絡(luò)請求某残;
抓包分析;
在Windows下設(shè)置虛擬wifi
前提:
運行Windows 7系統(tǒng)的PC已經(jīng)含有一塊可以正常聯(lián)網(wǎng)的網(wǎng)卡在運行陵吸;
擁有一塊USB無線網(wǎng)卡玻墅;
步驟1:建立虛擬wifi
以管理員身份運行命令提示符:“開始”——在搜索欄輸入“cmd”——右鍵,以“管理員身份運行”壮虫;
啟用并設(shè)定虛擬WiFi網(wǎng)卡
在啟動的CMD中運行命令:
netsh wlansethostednetwork mode=allow ssid=XXX key=XXXXXXXX keyusage=persistent#(可以不輸入keyusage)[敲回車]
注意:上邊命令“ssid”后XXX為網(wǎng)絡(luò)名稱即要設(shè)定的wifi名稱澳厢,自己隨便命名(最好用英文) “Key”后邊XXXXXXXX為你要設(shè)定的wifi密碼(至少8位)环础。
此命令有兩個參數(shù):
mode:是否啟用虛擬WiFi網(wǎng)卡,改為disallow則為禁用剩拢。例如:只使用mode=disallow可以直接禁用虛擬Wifi網(wǎng)卡线得。
如果將keyUsage指定為永久,將保存安全密鑰并在將來再次啟動托管網(wǎng)絡(luò)時使用徐伐。否則只有在當(dāng)前或下一次啟動托管網(wǎng)絡(luò)時使用此密碼贯钩。停止托管網(wǎng)絡(luò)后,將從系統(tǒng)中刪除臨時安全密鑰办素。如果未指定 keyUsage角雷,默認(rèn)情況下,它是永久性的性穿。
運行netsh wlan set hostednetwork mode=allow ssid=XXX key=XXXXXXXX命令之后看到成功的提示勺三。
然后再打開“控制面板”—>“網(wǎng)絡(luò)和共享中心”—>“更改適配器設(shè)置”
看看多出的這一項“Microsoft Virtual WiFi Miniport Adapter”。
(虛擬wifi是自己改的名字,原名叫:無線網(wǎng)絡(luò)連接2)
步驟2:設(shè)置Internet連接共享
在“網(wǎng)絡(luò)連接”窗口中需曾,右鍵單擊已連接到Internet的網(wǎng)絡(luò)連接(切記不一定是本地連接 檩咱,是你上網(wǎng)的那個連接),選擇“屬性”→“共享”胯舷,勾上“允許其他……連接(N)”并選擇“虛擬WiFi”刻蚯。
確定之后,提供共享的網(wǎng)卡圖標(biāo)旁會出現(xiàn)“共享的”字樣桑嘶,表示“寬帶連接”已共享至“虛擬WiFi炊汹。
步驟3:開啟無線網(wǎng)絡(luò)
繼續(xù)在命令提示符中運行:netsh wlan start hostednetwork,(當(dāng)然可以新建一個記事本文件復(fù)制:netsh wlan start hostednetwork然后另存為:啟動WIFI熱點.bat 逃顶,下次開機(jī)的時候只需要以“管理員身份運行”就啟動了讨便。)
虛擬WiFi的紅叉叉消失,WiFi基站已組建好以政,主機(jī)設(shè)置完畢霸褒。
用手機(jī)連接該wifi
如果想關(guān)閉wifi共享功能也是可以的,不用動電腦的wifi開關(guān)這么麻煩盈蛮,只需要一條命令:netsh wlan stop hostednetwork
(也可以像啟動wifi熱點那樣废菱,建立一個.txt文件,將命令netsh wlan stop hostednetwork復(fù)制到文件中,名字改為關(guān)閉WIFI熱點.bat,以“管理員身份運行”)
在mac上開啟wifi熱點方法
前提:必須插著網(wǎng)線且能上網(wǎng)抖誉;擁有一塊USB無線網(wǎng)卡殊轴。
步驟1:設(shè)置互聯(lián)網(wǎng)共享
點擊mac上的右上角的小蘋果,選擇“系統(tǒng)偏好設(shè)置”
打開系統(tǒng)偏好設(shè)置袒炉,后點擊“共享”
步驟2:開啟共享無線網(wǎng)絡(luò)
打開共享后旁理,選擇互聯(lián)網(wǎng)共享,右側(cè)共享來源鏈接選擇“以太網(wǎng)”我磁,端口選擇“wi-fi”
然后勾選上“互聯(lián)網(wǎng)共享”孽文,同時會彈出提示驻襟,選擇“啟動”
點擊完啟動,互聯(lián)網(wǎng)共享被勾選
同時可以點擊步驟3途中的“編輯”按鈕芋哭,編輯熱點名稱沉衣,和密碼
設(shè)置成功后,桌面最上方的bar上楷掉,wifi圖標(biāo)變?yōu)?向上的箭頭厢蒜,這時就可以連接該wifi霞势,使用相應(yīng)的抓包工具進(jìn)行抓包了~
用手機(jī)連接該wifi
如何使用Wireshark進(jìn)行抓包
Wireshark是什么
關(guān)于Wireshark的詳細(xì)介紹可以閱讀以下文檔:
維基百科:http://en.wikipedia.org/wiki/Wireshark
官方文檔:http://www.wireshark.org/docs/
一句簡單的介紹就是烹植,Wireshark是一個廣受好評的開源網(wǎng)絡(luò)包協(xié)議分析工具。
下載地址http://www.wireshark.org/download.html愕贡,可以針對自己的操作系統(tǒng)類型(Windows草雕,Mac,Linux)固以,操作系統(tǒng)位數(shù)(i386墩虹,amd64)來選擇合適的下載包。下載完成后安裝即可憨琳。
使用Wireshark進(jìn)行抓包
在已經(jīng)建立并開啟Wifi熱點的前提下诫钓,安裝完Wireshark后即可啟動該軟件。
啟動Wireshark后篙螟,通過依次點擊菜單欄的“Capture”-“Interfaces”(或者直接按下Ctrl+I快捷鍵),彈出如下界面菌湃,可以在該界面選擇要監(jiān)控的網(wǎng)卡。
此處默認(rèn)顯示的是各個網(wǎng)卡的IPv6地址遍略,鼠標(biāo)單擊該IPv6地址可切換顯示其IPv4地址惧所。單從顯示出來Description和IP地址有時候并不能判斷哪一塊網(wǎng)卡是需要監(jiān)控的⌒餍樱可以通過以下方法是判斷下愈。
i. ? ? ?通過按下“Windows徽標(biāo)鍵”+R,輸入cmd來啟動DOS命令行蕾久;
ii. ? ?輸入以下命令势似,ipconfig /all,來查看系統(tǒng)中各網(wǎng)卡的信息,需要的信息如圖中黃色部分顯示
iii. ? 選擇建立好的Wifi熱點之后僧著,點擊Start即可開始抓包叫编。
wireshark抓包主界面
一個具體的抓包監(jiān)控主界面如下圖所示。
選中你所要查看的請求記錄霹抛,右鍵選擇“Follow TCP Stream”查看具體內(nèi)容
至此抓包成功搓逾。
常用的工具欄工具
常用的工具欄工具有兩個,一個是停止抓包杯拐,一個是重新開始抓包(“清屏”)霞篡。
過濾器
過濾器的作用是從眾多的網(wǎng)絡(luò)請求中過濾出符合我們特定需求請求的工具世蔗。
由于Wireshark會記錄每一條網(wǎng)絡(luò)請求,不論是HTTP協(xié)議的每一次握手朗兵,還是FTP的每一次請求污淋,不論是TCP,還是UDP都會被記錄余掖,這樣的好處是可以記錄每一條記錄而不會有“漏網(wǎng)之魚”寸爆,不好的地方在于,在大量的請求中找到我們需要的那一條就不容易了盐欺。
因此就有了過濾器工具赁豆。
過濾器的使用是:編寫過濾器規(guī)則——應(yīng)用過濾器規(guī)則。過濾器規(guī)則的應(yīng)用可以通過過濾器欄的Apply來應(yīng)用冗美。如圖
幾個常用的簡單過濾器規(guī)則
過濾出所有的HTTP包請求
在filter的輸入框中輸入“http”(不含引號)魔种,然后點擊Apply
過濾出所有包含php關(guān)鍵詞的請求
在filter的輸入框中輸入“http.request.full_uri contains php”(不含引號),然后點擊Apply
過濾出所有含有特定域名的請求
在filter的輸入框中輸入“http.request.full_uri contains haoma.sogou.com”(不含引號粉洼,其中的haoma.sogou.com代指的是特定的域名)节预,然后點擊Apply
過濾出所有的GET方法請求
在filter的輸入框中輸入“http.request.method==”GET””(不含引號),然后點擊Apply