什麼是抓包?抓包做什麼?

一、什麼是抓包?

抓包(packet capture)就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,也用來檢查網絡安全。抓包也經常被用來進行數據截取等。

二、抓包做什麼?

不管做什麼事情,首先要有明確的目的,其次是要清楚能力的範疇,最後是要有清晰的思路。原始數據->過濾->分析,這是數據處理的基本套路,抓包的目的就是為了獲取到想要的原始數據,拿到數據以後,我們就可以做以下一些事情:

1. 分析數據傳輸協議。

2. 定位網絡協議的問題。

3. 從數據包中獲取想要的信息。

4. 將截取到的數據包進行修改,偽造,重發。

三、為什麼抓包?

1.從功能測試角度,通過抓包查看隱藏字段

Web 表單中會有很多隱藏的字段,這些隱藏字段一般都有一些特殊的用途,比如收集用户的數據,預防 CRSF 攻擊,防網絡爬蟲,以及一些其他用途。這些隱藏字段在界面上都看不到,如果想檢測這些字段,就必須要使用抓包工具。

2. 通過抓包工具瞭解協議內容,方便開展接口和性能測試

性能測試方面,性能測試其實就是大量模擬用户的請求,所以我們必須要知道請求中的協議內容和特點,才能更好的模擬用户請求,分析協議就需要用到抓包工具;接口測試方面,在接口測試時,雖然我們儘量要求有完善的接口文檔。但很多時候接口文檔不可能覆蓋所有的情況,或者因為文檔滯後,在接口測試過程中,還是需要藉助抓包工具來輔助我們進行接口測試。

3. 需要通過抓包工具,檢查數據加密

安全測試方面,我們需要檢查敏感數據在傳輸過程中是否加密,也需要藉助抓包工具才能檢查。

4. 處理前後端 bug 歸屬之爭

在我們提交bug的時候,經常會出現前端(客户端展示)和後端(服務端的邏輯)的爭議,那麼可以通過抓包工具,確實是數據傳遞問題還是前端顯示的問題。如果抓出來的數據就有問題的話,那麼一般是後端的問題;如果抓出來的數據是正確的,那麼基本上可以斷定是前端顯示的問題。

5. 通過抓包分析,可以更好地理解整個系統

經常使用抓包工具輔助測試,可以很好地瞭解整個系統,比如數據傳輸過程前後端的關係,以及整個系統的結構。特別是對現在的微服務架構的產品,抓包能夠更好的梳理和掌握整個系統各個服務之間的關係,大大增加測試的覆蓋度。另外還可以增進對代碼、HTTP協議方面知識的理解。

四、常用抓包工具

除了傳統的抓包工具,抓包大師(Sniff Master)作為一款全平台抓包工具,支持HTTPS、TCP和UDP協議,可在iOS、Android、Mac、Windows設備上實現無需代理、越獄或root的抓包操作,提供強大的代理抓包功能。

1、httpwatch:

httpwatch與IE和firefox瀏覽器集成,但不支持chrome;httpwatch界面清晰直觀,發送請求後可以快速簡單的查看Cookies, Headers, Query Strings and POST data,能夠通過頁面分組處理多頁面場景。

2、Fiddler:

Fiddler是一個獨立的應用,可以調試PC、Mac或Linux系統和移動設備 的之間的通信,支持大部分框架如java、.net、java、Ruby,需要設置代理

3、wireshark

wireshark是一款專業的通過抓取網絡數據包進行網絡檢測,網絡協議分析工具,可實時監測網絡傳輸數據,全面透視整個網絡的動態信息。

4、firebug

Firebug是firefox下的一個擴展,它除了能進行網絡分析還能夠調試所有網站語言,如js、Html、Css等,支持各種瀏覽器如IE、Firefox、Opera,、Safari。