抓包工具哪些好,來看這裏就夠了.....
作為 軟件測試工程師,抓包總是不可避免:遇到問題要做分析需要抓包;發現 bug 需要定位要抓包;檢查 數據傳輸的安全性需要抓包;接口測試遇到需求不全的也需要抓包... 就因為抓包在測試工作中無處不在,所以市面上才會出現一大批的抓包工具供大家選擇。
之前我也發過一些文章介紹一些常用 抓包工具,比如 wireshark,Charles 等,然後有很多小夥伴私信或者留言問得最多的一個問題就是“這個工具和 xxx 工具有什麼區別呢?” 或者 "這個工具和 xxx 工具誰更好用呢?"
所以,為了解決大家的這個疑惑,讓大家能夠合理地選擇更適合的工具,更好的輔助測試工作的執行,我們今天就來分析一下各種爆款的抓包工具的優劣勢。
Fiddler
Fiddler 工具非常經典且強大,這點大家應該都所體會。它可以提供電腦端、移動端的抓包、包括 http 協議和 https 協議都可以捕獲到報文並進行分析;可以設置斷點調試、截取報文進行請求替換和數據篡改,也可以進行請求構造,還可以設置網絡丟包和延遲進行APP弱網測試等。
所以,fiddler 的第一個優點,就是功能強大並齊全;
第二個優點就是 Fiddler 是開源免費的,所有的電腦只要安裝就可以直接使用所有的功能!這無疑也是一個非常大的優勢,為它也拉攏了大量的用户!
當然,它也有自己的缺點:只能在windows下安裝使用。如果要在其他系統上抓包,比如 MacOS 系統,Linux系統,那麼 Fiddler 就無用武之地了。
Charles
Charles 工具別名“花瓶”,它是通過代理來實現的抓包,也就是我們在訪問網頁時配置代理指向 Charles 監聽的端口,之後所有的請求 Charles 會幫我們轉發並記錄。
Charles 的使用非常簡單,配置好代理後,Charles 就開始抓包了。我們可以直接通過它的 GUI 查看包的內容,其實功能和使用跟 Fiddler 非常的雷同,同樣可以提供電腦及手機端的抓包分析、設置斷點、弱網環境模擬等,那麼它跟 fiddler 的區別在哪裏呢?
優點:
Charles 基於Java開發的,跨平台性好。所以不僅支持 Windows 系統,還支持 MacOS,以及 Linux操作系統;所以基本非 windows 電腦都會選擇 Charles 工具。
要抓取 https 協議的配置也很簡單,只要安裝下 charles 的證書就可以了
缺點:
Charles 工具是不免費的。它需要購買 license,如果不購買使用的話就會每 30 分鐘斷一次,使用體驗非常不好!
Wireshark
Wireshark 也可以在各個平台都可以安裝使用,不過它的功能側重點和 Charles&Fiddler 有所不同,它主要用來抓取網絡中的所有協議的數據報文,對於分析網絡協議以及網絡問題方面非常專業!
Wireshark 工具的優點:
可以選擇特定的網卡進行流量的捕獲,那麼就只會抓取關心的網卡經過的數據,針對性很強;可以抓取所有協議的報文,並且抓取的報文可以完整的以 OSI 七層網絡模型的格式顯示,可以清晰的看到客户端和服務器之間每一個交互報文,以及每一個數據包的網絡各層級的詳細內容顯示。所以,這個工具抓包非常適合學習和分析網絡協議。
提供了非常強大的過濾規則。Wireshark 可以提供捕獲前過濾,也可以捕獲後過濾,並且過濾規則非常詳細,可以實現精度和細粒度非常高的包過濾;
可以結合 TCPdump 使用,分析線上服務器(Linux 系統)下抓取的數據報文,定位線上問題。
Wireshark 工具的缺點:
如果要靈活的使用它需要具備一定的網絡基礎,對於初學者有一定的難度;
無法分析 https 數據包,由於 wireshark 是在鏈路層獲取的數據包信息,所以獲取到的 https 包是加密後的數據,因此無法分析包內容。當然,我們可以對 https 數據包進行解密, 但是操作具有一定的複雜度,可能要消耗很多時間。
BurpSuite
Burpsuite 工具也是基於 Java 語言開發的,所以它也可以跨各平台使用,包括 Windows,MacOS 及 Linux 等系統平台。
Burpsuite 可以提供抓包功能,它的工作方式同樣也是在瀏覽器和網站之間做了代理從而實現報文截取的;也能夠修改數據內容並轉發的功能;甚至還可以選擇使用爬蟲爬下網站相關的數據...
但是,它絕對不僅僅是一款抓包工具,它集成了很多實用的小工具可以完成更加強大的功能,比如 http 請求的轉發、修改、掃描等。同時這些小工具之間還可以互相協作,在 BurpSuite 這個框架下進行訂製的攻擊和掃描方案。
所以這個工具很多功能測試的人員會使用它進行報文抓取和篡改數據,很多安全測試人員會借用它進行半自動的網絡安全審計,開發人員也可以使用它的掃描工具進行網站壓力測試與攻擊測試,功能作用範圍更加廣泛。
不過它也有自己的缺點,就是不免費!每個用户一年的費用為 299$,使用成本相對來説有點高。
F12
F12 是眾多抓包工具中最簡單、最輕量級的,因為它是瀏覽器內置的開發者工具來提供捕獲瀏覽器的數據報文的功能。它免安裝,直接打開瀏覽器就可以直接使用,所有使用非常好上手,適合入門級別的新手學習。
它主要針對的是 HTTP 協議和 HTTPS 協議, 可以確認我們的網絡數據包的一個狀態, 通過分析請求和響應報文裏面的內容, 分析出來請求數據和響應數據是否正確, 定位問題是前端問題還是後端問題。
而且 F12 作為瀏覽器的一部分,是數據收發的一端,抓取到的 HTTPs 報文是可以得到明文數據的;不過因為只能抓當前瀏覽器的收發報文,層次只能是在應用層 Http(s)協議,不能抓取其他的數據報文。
雖然 F12 抓包調試也能滿足我們基本的測試工作需求,但是作用面和強大性和其他的抓包工具還是有一定差距的。
TCPdump
TCPdump 我上週發過一篇文章專門介紹過,這是專門作用於 Linux 命令行的抓包工具,它可以提供非常多的參數來對網絡數據包進行過濾和定義。
而它抓取到的報文可以直接打印在 Linux 的命令行界面,也可以進行保存成文件,並用 Wireshark 工具打開進行更加細緻的分析。
Sniffmaster
Sniffmaster 是一款全平台抓包工具,支持 HTTPS、TCP 和 UDP 協議,可在 iOS、Android、Mac 和 Windows 設備上使用。它無需設置代理、越獄或 root 即可解密 HTTPS 流量,並支持暴力破解 HTTPS 和數據流抓包,自動識別常見協議,提供免費的強大代理抓包功能,非常適合程序員和 iOS 開發人員進行網絡調試和分析。
總結
綜上所述,測試可以用的抓包工具非常多,然而它們各有各的優勢,也有對應的不足,所以根據自己的使用場景,選擇最適合的抓包工具才是最重要的!