常見的4種抓包工具的對比簡述


4種抓包工具的對比

一、httpwatch:

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

2.   實時分級時間展示圖能夠展示一個http/https請求的處理過程;通過不同的顏色展示網絡請求計時,如DNS查詢,tcp連接;以瀑布形式展示瀏覽器事件,例如從瀏覽器渲染和頁面加載計時就開始了,可以自動檢查性能問題。

3.   安裝簡單,不需要設置代理和證書;提供接口API可以被大部分編程語言自動化調用、錄制、保存結果。

4.   但只能看不能修改

二、Fiddler:

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

2.能夠暫停Http通訊,並且允許修改請求和響應方便進行安全測試,也可以設置檢查點做功能測試

3.通過暴露HTTP頭,用戶可以看見哪些頁面被允許在客戶端或者是代理端進行緩存。如果要是一個響應沒有包含Cache-Control頭,那么他就不會被緩存在客戶端。

4.可以通過Composer進行接口測試

      三、科來網絡分析系統

1.科來網絡分析系統是一款專業的通過抓取網絡數據包進行網絡檢測,網絡協議分析工具,可實時監測網絡傳輸數據,全面透視整個網絡的動態信息。除了能實時檢測每台電腦的上網情況,郵件收發情況,網絡登錄情況,網絡流量外,還具有強大的數據包解碼分析功能,可診斷網絡故障,定位網絡瓶頸,檢測網絡安全隱患,支持多種協議。

2.一般用於抓取其他協議包

      四、firebug

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

2. Firebug是開源工具,能夠將頁面中的CSS、javascript以及網頁中引用的圖片載入所消耗的時間以矩狀圖呈現出來,方便我們對網頁進行調優。

3.Firebug編輯、刪改任何網站的CSS、HTMLDOM 以及JavaScript 代碼,可以通過小箭頭定位頁面元素。

轉載自 幽幽草哈哈  http://www.51testing.com/html/53/462853-3717382.html

-------------------------------------------------------------------------------------------------------------------------------

測試員常用抓包工具:fiddler和wireshark對比

 

了解過網絡安全技術的人都知道一個名詞“抓包”。那對於局外人,一定會問什么是抓包?考慮到,大家的技術水平不一,我盡可能用非專業的口吻簡單的說一下。

抓包就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,也用來檢查網絡安全。抓包也經常被用來進行數據截取等。黑客常常會用抓包軟件獲取你非加密的上網數據,然后通過分析,結合社會工程學進行攻擊。所以,學會抓包,對於學好網絡安全技術十分重要。

在我們做接口測試的時候,經常需要驗證發送的消息是否正確,或者在出現問題的時候,查看手機客戶端發送給server端的包內容是否正確,就需要用到抓包工具。而工程師和程序常用的抓包工具有哪些呢?今天我們就來簡單聊一聊最常用的2種。

Fiddler是在windows上運行的程序,專門用來捕獲HTTP,HTTPS的。

wireshark能獲取HTTP,也能獲取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的內容。

總結,如果是處理HTTP,HTTPS 還是用Fiddler, 其他協議比如TCP,UDP 就用wireshark。

一、Fiddler

當啟動fiddler,程序將會把自己作為一個代理,所以的http請求在達到目標服務器之前都會經過fiddler,同樣的,所有的http響應都會在返回客戶端之前流經fiddler。

Fiddler可以抓取支持http代理的任意程序的數據包,如果要抓取https會話,要先安裝證書。

Fiddler的工作原理

Fiddler 是以代理web服務器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 當Fiddler會自動設置代理, 退出的時候它會自動注銷代理,這樣就不會影響別的程序。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動注銷,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler.

Fiddler 如何捕獲Firefox的會話

能支持HTTP代理的任意程序的數據包都能被Fiddler嗅探到,Fiddler的運行機制其實就是本機上監聽8888端口的HTTP代理。Fiddler2啟動的時候默認IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設置的,所以將Firefox的代理改為127.0.0.1:8888就可以監聽數據了。

Firefox 上通過如下步驟設置代理

點擊: Tools -> Options, 在Options 對話框上點擊Advanced tab - > network tab -> setting.

Firefox 中安裝Fiddler插件

修改Firefox 中的代理比較麻煩, 不用fiddler的時候還要去掉代理。推薦你在firefox中使用fiddler hook 插件, 這樣你非常方便的使用Fiddler獲取firefox中的request 和response,當你安裝fiddler后,就已經裝好了Fiddler hook插件,你需要到firefox中去啟用這個插件打開firefox tools->Add ons -> Extensions 啟動 FiddlerHook

Fiddler如何捕獲HTTPS會話

默認下,Fiddler不會捕獲HTTPS會話,需要你設置下, 打開Fiddler Tool->Fiddler Options->HTTPS tab

選中checkbox, 彈出如下的對話框,點擊"YES"

點擊"Yes" 后,就設置好了

Fiddler的基本界面

看看Fiddler的基本界面

Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下圖

Fiddler的HTTP統計視圖

通過陳列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您當前請求的頁面。使用Statistics頁簽,用戶可以通過選擇多個會話來得來這幾個會話的總的信息統計,比如多個請求和傳輸的字節數。

選擇第一個請求和最后一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化

QuickExec命令行的使用

Fiddler的左下角有一個命令行工具叫做QuickExec,允許你直接輸入命令。

常見的命令有:

help 打開官方的使用頁面介紹,所有的命令都會列出來

cls 清屏 (Ctrl+x 也可以清屏)

select 選擇會話的命令

.png 用來選擇png后綴的圖片

bpu 截獲request

Fiddler中設置斷點修改Request

Fiddler最強大的功能莫過於設置斷點了,設置好斷點后,你可以修改httpRequest 的任何信息包括host, cookie或者表單中的數據。設置斷點有兩種方法

第一種:打開Fiddler 點擊Rules-> Automatic Breakpoint ->Before Requests(這種方法會中斷所有的會話)

如何消除命令呢? 點擊Rules-> Automatic Breakpoint ->Disabled

第二種: 在命令行中輸入命令: bpu http://www.baidu.com (這種方法只會中斷http://www.baidu.com)

如何消除命令呢? 在命令行中輸入命令 bpu

二、Wireshark

Wireshark是另外一種抓包工具,這種工具比fiddler更強大,消息量更多。大家可能會問:有了fiddler,為什么還要用wireshark呢?這里說下,在測試中,發現用fiddler抓包,有些包是沒有抓到的,比如在驗證反作弊信息的時候,反作弊pingback信息的消息用fiddler就沒抓到,用wireshark就抓到了。還有另外一種情況,就是在驗證cna的時候,如果先用fiddler抓包,如果沒有種下cna的時候,以后就永遠沒有cna了,情況很詭異。解決辦法就是把包卸載了重新安裝,第一次用wireshark抓包。

Wireshark優勢:

1、強大的協議解析能力,一到七層全解碼,一覽無遺,對於協議細節的研究特別有幫助。

2、對於https加密流量,只要將瀏覽器的session key 自動導入wireshark,Wireshark可以自動解密https流量。

Wireshark不足之處:

盡管可以自定義過濾列表,但為了抓取一個特定TCP Flow /Session 流量需要寫一個長長的過濾列表,這對於初學者很不友好。

操作實例:

wireshark是捕獲機器上的某一塊網卡的網絡包,當你的機器上有多塊網卡的時候,你需要選擇一個網卡。

點擊Caputre->Interfaces.. 出現下面對話框,選擇正確的網卡。然后點擊"Start"按鈕, 開始抓包:

一、WireShark 界面

1、Display Filter(顯示過濾器),用於過濾;

2、Packet List Pane(封包列表),顯示捕獲到的封包,有源地址和目標地址,端口號;

3、Packet Details Pane(封包詳細信息), 顯示封包中的字段;

4、Dissector Pane(16進制數據);

5、Miscellanous(地址欄,雜項)。

二、Wireshark 顯示過濾

使用過濾是非常重要的,初學者使用wireshark時,將會得到大量的冗余信息,在幾千甚至幾萬條記錄中,以至於很難找到自己需要的部分。搞得暈頭轉向。過濾器會幫助我們在大量的數據中迅速找到我們需要的信息。

過濾器有兩種:

1、一種是顯示過濾器,就是主界面上那個,用來在捕獲的記錄中找到所需要的記錄

2、一種是捕獲過濾器,用來過濾捕獲的封包,以免捕獲太多的記錄。 在Capture -> Capture Filters 中設置。

三、保存過濾

在Filter欄上,填好Filter的表達式后,點擊Save按鈕, 取個名字。比如"Filter 102",Filter欄上就多了個"Filter 102" 的按鈕。

四、過濾表達式的規則

表達式規則

1.協議過濾 比如TCP,只顯示TCP協議。

2.IP 過濾

比如 ip.src ==192.168.1.102 顯示源地址為192.168.1.102,ip.dst==192.168.1.102,目標地址為192.168.1.102。

3.端口過濾

tcp.port ==80, 端口為80的

tcp.srcport == 80, 只顯示TCP協議的願端口為80的。

4.Http模式過濾

http.request.method=="GET", 只顯示HTTP GET方法的。

5.邏輯運算符為 AND/ OR

五、封包列表(Packet List Pane)

封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包信息。 你可以看到不同的協議用了不同的顏色顯示。 你也可以修改這些顯示顏色的規則, View ->Coloring Rules.

六、封包詳細信息 (Packet Details Pane)

這個面板是我們最重要的,用來查看協議中的每一個字段。各行信息分別為

·Frame: 物理層的數據幀概況

·Ethernet II: 數據鏈路層以太網幀頭部信息

·Internet Protocol Version 4: 互聯網層IP包頭部信息

·Transmission Control Protocol: 傳輸層T的數據段頭部信息,此處是TCP

·Hypertext Transfer Protocol: 應用層的信息,此處是HTTP協議

七、Wireshark與對應的OSI七層模型

八、TCP包的具體內容

從下圖可以看到wireshark捕獲到的TCP包中的每個字段。

總結:

總的來說,兩款抓包軟件各有優缺點,選擇的關鍵在於我們的需求是什么,當然,對於軟件測試從業者而言,兩款軟件都是十分有必要學習的~

源:https://baijiahao.baidu.com/s?id=1612020651990482782&wfr=spider&for=pc

-------------------------------------------------------------------------------------------------------

手機端和PC端都可以用的抓包工具:

Charles的簡單介紹:

Charles又名青花瓷,是Mac端的一款截取與分析網絡請求的工具(windows也可以用),在網絡開發中使用其作分析,可以大大提高我們的開發效率,部分好處如下:

  • 一是攔截別人軟件的發送的請求和后端接口,練習開發。
  • 二是自己后端返回的response攔截修改后再接收以達到測試臨界數據的作用。
  • 三寫腳本重復攔截抓取別人的數據。
  • 四支持流量控制,可以模擬慢速網絡以及等待時間(latency)較長的請求。
  • 五支持重發網絡請求,方便后端調試。
  • 六支持SSL代理。可以截取分析SSL的請求。

下面簡單講解一下mac電腦跟iPhone手機,window電腦跟安卓手機的使用

一.MAC電腦+IOS10.3.3手機

1.下載安裝與破解:

網址:http://charles.iiilab.com/
此網址會持續更新,下載地址跟破解方法都有。
或者去從官網下載鏈接http://www.charlesproxy.com/download
一般可以使用三十天。
這里網上可以找到破解的相對版本的charles.jar文件,以mac來說在應用程序里面右鍵Charles--顯示包內容--Contents--Java--charles.jar(替換掉你下載的)

2.安裝之后設置Proxy,這樣http請求就能解析到內容了。

頂部工具欄:Proxy-> Proxy settings ->proxies :勾選enable transparent http proxying

 

如圖:
 
圖一
3.使Https請求能解析:

在上面的設置步驟2之后,就能解析到瀏覽器上面的http請求了,但是https請求會顯示unkonwn 就是不能解析https請求,如圖中提示:


 
圖二

所以需要設置SSL Proxying。
頂部工具欄:Proxy-> SSL Proxying Settings->SSL Proxying:勾選Enable SSL Proxying :
[圖片上傳失敗...(image-1fc441-1558231863214)]
添加host,端口是443 這里是把所有的host都設置進去
[圖片上傳失敗...(image-ee3047-1558231863214)]

當然也可以設置指定的host,端口不變 ,這樣請求就解析出來了。

4.模擬器攔截請求

如圖設置:
[圖片上傳失敗...(image-91b702-1558231863214)]
模擬器請求就出現在charles了
[圖片上傳失敗...(image-94fc69-1558231863214)]

5.抓取真機上的包,手機攔截請求:

設置
[圖片上傳失敗...(image-33feee-1558231863214)]
彈出:
[圖片上傳失敗...(image-be9c90-1558231863214)]
通過上面的提示告訴我們:
一需要在手機上面手動代理的IP地址:192.168.27.117,端口號:8888.
二需要去https://chls.pro/ssl 下載證書
可以通過官網:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
看到詳細的解釋:

 
圖9

操作如下:
(1)通過safari打開 https://chls.pro/ssl 下載證書
手機--setting-->General--->Profiles & Device Management --->Charles Proxy CA...
將設置為信任。如圖
 
圖10

(2)設置手機代理:
在手機上連接和電腦相同的網絡,然后設置HTTP代理
如圖:
 
圖11

 

這樣就可以通過手機的請求,在charles上面看到抓到數據請求了。

6.使用,更改請求的數據和返回的數據:

(1)如圖
[圖片上傳失敗...(image-3f70c9-1558231863214)]
(2)然后點擊手機訪問你要抓包那個頁面,會跑到斷點上。
手機截圖:


 
圖13

Charles截圖:
[圖片上傳失敗...(image-4c95c2-1558231863214)]
(3)修改請求報文,在第(2)步的charles截圖定位到Edit Request上面
[圖片上傳失敗...(image-e6342-1558231863214)]
(4)修改返回報文,在第(3)步上的截圖上面點擊Execute,然后在切換到Edit Response上面
[圖片上傳失敗...(image-89eabf-1558231863214)]
以上就是在mac上通過抓包調試ios應用簡單實踐,后面繼續講一下windows下面的Charles使用。


二.windowsx64電腦+android6.0.1小米5s手機

1.前面1,2,3,4步驟,下載安裝破解配置都跟上面的都差不多就不贅述了。配置之后基本上可以抓取http的包了,但是https是抓不到的,需要安裝證書。現在講述一下android手機怎么安裝證書,每個手機可能不一樣,這里以小米5s為例:
  • (1)手機瀏覽器輸入 http://charlesproxy.com/getssl 下載證書,在瀏覽器的下載管理里面可以看到一個為 downloadfile.crt 的文件。
  • (2)如果你的手機沒有設置鎖屏密碼,先去設置鎖屏密碼,如果設置了請忽略。
  • (3)進入手機設置-->更多設置--->系統安全 如圖:


     
    圖17
  • (4)在系統安全里面選擇從SD卡安裝,為會看到你從瀏覽器下載的文件downloadfile.crt
    點擊安裝。出現如圖:


     
    圖18
  • (5)隨便輸個英文名字,我這里輸入Charles,點擊確定就安裝成功了。接下來你就可以抓取到htttps的報文了。
  • (6)后面的修改請求報文,跟返回報文跟上面的mac 跟ios一樣。這里不贅述。
2.前面講了一些mac上面的Charles斷點操作,這里就借助window上面的Charles講一下過濾。

(1)使用host過濾,首先在 Charles 的菜單欄選擇 Proxy->Recording Settings,然后選擇 Include 欄,選擇Add,然后填入需要監控的協議,主機地址,端口號,這樣就達到了過濾的目的。如下圖:

 
圖19

這種過濾只能針對以 https://m.baidu.com的一個Ip地址過濾。
(2)另一種方法就是在一個網址上右擊,選擇Focus,然后其他的請求就會被放到一個叫Other Host的文件夾里面,這樣也達到了過濾的目的。
 
圖20

 

3.模擬慢網速

在開發中,我們有時候想要模擬一下網絡慢的情況,這時候Charles他是可以幫助到你的,在Proxy->Throttle Setting,然后選擇Enable Throttling,在Throttle Preset下選擇網絡類型即可,具體設置你可以自行拿捏。


 
圖21
4.請求重定向

請求重定向的作用是什么呢?開發中一般都是測試環境,如果我們想對比一下和線上版本的區別的話,可以將測試的請求重定向到正式環境下。在選擇 Tools->`Map Remote下:

 
圖22

這里添加的一個例子是把 http://test.baidu.com重定向到 http://m.baidu.com下面

 

5.后續:android7.0以上的手機抓包

android 7.0以上在隱私安全上做了嚴格限制,就算你在安全與隱私--從存儲設備安裝證書(安裝了charles.pem證書),還是沒有辦法抓https,這里需要配置一下。
首先需要將你要抓包的域名地址加入到SSL Proxying里面。Proxy--SSL Proxying Setting


 
 

然后還需要在項目清單文件里面配置:

 
 

在res下面xml文件夾下面建:network_security_config.xml文件


 
 

這樣就可以抓取https了。


應對前端手機端的開發,上面基本上已經足夠

作者:Adminwang
鏈接:https://www.jianshu.com/p/90bdb565a1a4
來源:簡書


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM