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

4種抓包工具的對比javascript

1、httpwatch:html

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

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

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

4.   但只能看不能修改ios

2、Fiddler:web

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

2.可以暫停Http通信,而且容許修改請求和響應方便進行安全測試,也能夠設置檢查點作功能測試編程

3.經過暴露HTTP頭,用戶能夠看見哪些頁面被容許在客戶端或者是代理端進行緩存。若是要是一個響應沒有包含Cache-Control頭,那麼他就不會被緩存在客戶端。windows

4.能夠經過Composer進行接口測試

      3、科來網絡分析系統

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

2.通常用於抓取其餘協議包

      4、firebug

一、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。

1、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

2、Wireshark

Wireshark是另一種抓包工具,這種工具比fiddler更強大,消息量更多。你們可能會問:有了fiddler,爲何還要用wireshark呢?這裏說下,在測試中,發現用fiddler抓包,有些包是沒有抓到的,好比在驗證反做弊信息的時候,反做弊pingback信息的消息用fiddler就沒抓到,用wireshark就抓到了。還有另一種狀況,就是在驗證cna的時候,若是先用fiddler抓包,若是沒有種下cna的時候,之後就永遠沒有cna了,狀況很詭異。解決辦法就是把包卸載了從新安裝,第一次用wireshark抓包。

Wireshark優點:

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

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

Wireshark不足之處:

儘管能夠自定義過濾列表,但爲了抓取一個特定TCP Flow /Session 流量須要寫一個長長的過濾列表,這對於初學者很不友好。

操做實例:

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

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

1、WireShark 界面

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

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

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

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

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

2、Wireshark 顯示過濾

使用過濾是很是重要的,初學者使用wireshark時,將會獲得大量的冗餘信息,在幾千甚至幾萬條記錄中,以致於很難找到本身須要的部分。搞得暈頭轉向。過濾器會幫助咱們在大量的數據中迅速找到咱們須要的信息。

過濾器有兩種:

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

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

3、保存過濾

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

4、過濾表達式的規則

表達式規則

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

5、封包列表(Packet List Pane)

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

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

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

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

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

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

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

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

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

8、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 來源:簡書
相關文章
相關標籤/搜索