全網(wǎng)最全的爆款抓包工具的綜合對比

作為軟件測試工程師,抓包總是不可避免:遇到問題要做分析需要抓包;發(fā)現(xiàn) bug 需要定位要抓包;檢查數(shù)據(jù)傳輸?shù)陌踩孕枰グ?;接口測試遇到需求不全的也需要抓包... 就因為抓包在測試工作中無處不在,所以市面上才會出現(xiàn)一大批的抓包工具供大家選擇。
之前我也發(fā)過一些文章介紹一些常用抓包工具,比如 wireshark,Charles 等,然后有很多小伙伴私信或者留言問得最多的一個問題就是“這個工具和 xxx 工具有什么區(qū)別呢?” 或者 "這個工具和 xxx 工具誰更好用呢?"
所以,為了解決大家的這個疑惑,讓大家能夠合理地選擇更適合的工具,更好的輔助測試工作的執(zhí)行,我們今天就來分析一下各種爆款的抓包工具的優(yōu)劣勢。

Fiddler

Fiddler 工具非常經(jīng)典且強大,這點大家應(yīng)該都所體會。它可以提供電腦端、移動端的抓包、包括 http 協(xié)議和 https 協(xié)議都可以捕獲到報文并進行分析;可以設(shè)置斷點調(diào)試、截取報文進行請求替換和數(shù)據(jù)篡改,也可以進行請求構(gòu)造,還可以設(shè)置網(wǎng)絡(luò)丟包和延遲進行 APP 弱網(wǎng)測試等。
所以,fiddler 的第一個優(yōu)點,就是功能強大并齊全;
第二個優(yōu)點就是 Fiddler 是開源免費的,所有的電腦只要安裝就可以直接使用所有的功能!這無疑也是一個非常大的優(yōu)勢,為它也拉攏了大量的用戶!
當然,它也有自己的缺點:只能在 windows 下安裝使用。如果要在其他系統(tǒng)上抓包,比如 MacOS 系統(tǒng),Linux 系統(tǒng),那么 Fiddler 就無用武之地了。
Charles

Charles 工具別名“花瓶”,它是通過代理來實現(xiàn)的抓包,也就是我們在訪問網(wǎng)頁時配置代理指向 Charles 監(jiān)聽的端口,之后所有的請求 Charles 會幫我們轉(zhuǎn)發(fā)并記錄。
Charles 的使用非常簡單,配置好代理后,Charles 就開始抓包了。我們可以直接通過它的 GUI 查看包的內(nèi)容,其實功能和使用跟 Fiddler 非常的雷同,同樣可以提供電腦及手機端的抓包分析、設(shè)置斷點、弱網(wǎng)環(huán)境模擬等,那么它跟 fiddler 的區(qū)別在哪里呢?
優(yōu)點:
Charles 基于 Java 開發(fā)的,跨平臺性好。所以不僅支持 Windows 系統(tǒng),還支持 MacOS,以及 Linux 操作系統(tǒng);所以基本非 windows 電腦都會選擇 Charles 工具。
要抓取 https 協(xié)議的配置也很簡單,只要安裝下 charles 的證書就可以了
缺點:
Charles 工具是不免費的。它需要購買 license,如果不購買使用的話就會每 30 分鐘斷一次,使用體驗非常不好!
Wireshark

Wireshark 也可以在各個平臺都可以安裝使用,不過它的功能側(cè)重點和 Charles&Fiddler 有所不同,它主要用來抓取網(wǎng)絡(luò)中的所有協(xié)議的數(shù)據(jù)報文,對于分析網(wǎng)絡(luò)協(xié)議以及網(wǎng)絡(luò)問題方面非常專業(yè)!
Wireshark 工具的優(yōu)點:
可以選擇特定的網(wǎng)卡進行流量的捕獲,那么就只會抓取關(guān)心的網(wǎng)卡經(jīng)過的數(shù)據(jù),針對性很強;
可以抓取所有協(xié)議的報文,并且抓取的報文可以完整的以 OSI 七層網(wǎng)絡(luò)模型的格式顯示,可以清晰的看到客戶端和服務(wù)器之間每一個交互報文,以及每一個數(shù)據(jù)包的網(wǎng)絡(luò)各層級的詳細內(nèi)容顯示。所以,這個工具抓包非常適合學習和分析網(wǎng)絡(luò)協(xié)議。
提供了非常強大的過濾規(guī)則。Wireshark 可以提供捕獲前過濾,也可以捕獲后過濾,并且過濾規(guī)則非常詳細,可以實現(xiàn)精度和細粒度非常高的包過濾;
可以結(jié)合 TCPdump 使用,分析線上服務(wù)器(Linux 系統(tǒng))下抓取的數(shù)據(jù)報文,定位線上問題。
Wireshark 工具的缺點:
如果要靈活的使用它需要具備一定的網(wǎng)絡(luò)基礎(chǔ),對于初學者有一定的難度;
無法分析 https 數(shù)據(jù)包,由于 wireshark 是在鏈路層獲取的數(shù)據(jù)包信息,所以獲取到的 https 包是加密后的數(shù)據(jù),因此無法分析包內(nèi)容。當然,我們可以對 https 數(shù)據(jù)包進行解密, 但是操作具有一定的復雜度,可能要消耗很多時間。
BurpSuite

Burpsuite 工具也是基于 Java 語言開發(fā)的,所以它也可以跨各平臺使用,包括 Windows,MacOS 及 Linux 等系統(tǒng)平臺。
Burpsuite 可以提供抓包功能,它的工作方式同樣也是在瀏覽器和網(wǎng)站之間做了代理從而實現(xiàn)報文截取的;也能夠修改數(shù)據(jù)內(nèi)容并轉(zhuǎn)發(fā)的功能;甚至還可以選擇使用爬蟲爬下網(wǎng)站相關(guān)的數(shù)據(jù)...
但是,它絕對不僅僅是一款抓包工具,它集成了很多實用的小工具可以完成更加強大的功能,比如 http 請求的轉(zhuǎn)發(fā)、修改、掃描等。同時這些小工具之間還可以互相協(xié)作,在 BurpSuite 這個框架下進行訂制的攻擊和掃描方案。
所以這個工具很多功能測試的人員會使用它進行報文抓取和篡改數(shù)據(jù),很多安全測試人員會借用它進行半自動的網(wǎng)絡(luò)安全審計,開發(fā)人員也可以使用它的掃描工具進行網(wǎng)站壓力測試與攻擊測試,功能作用范圍更加廣泛。
不過它也有自己的缺點,就是不免費!每個用戶一年的費用為 299$,使用成本相對來說有點高。
F12

F12 是眾多抓包工具中最簡單、最輕量級的,因為它是瀏覽器內(nèi)置的開發(fā)者工具來提供捕獲瀏覽器的數(shù)據(jù)報文的功能。它免安裝,直接打開瀏覽器就可以直接使用,所有使用非常好上手,適合入門級別的新手學習。
它主要針對的是 HTTP 協(xié)議和 HTTPS 協(xié)議, 可以確認我們的網(wǎng)絡(luò)數(shù)據(jù)包的一個狀態(tài), 通過分析請求和響應(yīng)報文里面的內(nèi)容, 分析出來請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)是否正確, 定位問題是前端問題還是后端問題。
而且 F12 作為瀏覽器的一部分,是數(shù)據(jù)收發(fā)的一端,抓取到的 HTTPs 報文是可以得到明文數(shù)據(jù)的;不過因為只能抓當前瀏覽器的收發(fā)報文,層次只能是在應(yīng)用層 Http(s)協(xié)議,不能抓取其他的數(shù)據(jù)報文。
雖然 F12 抓包調(diào)試也能滿足我們基本的測試工作需求,但是作用面和強大性和其他的抓包工具還是有一定差距的。
TCPdump

TCPdump 我上周發(fā)過一篇文章專門介紹過,這是專門作用于 Linux 命令行的抓包工具,它可以提供非常多的參數(shù)來對網(wǎng)絡(luò)數(shù)據(jù)包進行過濾和定義。
而它抓取到的報文可以直接打印在 Linux 的命令行界面,也可以進行保存成文件,并用 Wireshark 工具打開進行更加細致的分析。
想要了解更多,可以查看具體的文章。(附上上篇文章的鏈接)
總結(jié)

綜上所述,測試可以用的抓包工具非常多,然而它們各有各的優(yōu)勢,也有對應(yīng)的不足,所以根據(jù)自己的使用場景,選擇最適合的抓包工具才是最重要的
聲明:本文作者為檸檬班tricy老師,轉(zhuǎn)載請注明出處!