Fiddler簡介

ZHUO_SIR發表於2018-08-05

1.為什麼是Fiddler?

抓包工具有很多,小到最常用的web除錯工具firebug,達到通用的強大的抓包工具wireshark.為什麼使用fiddler?原因如下:

a.Firebug雖然可以抓包,但是對於分析http請求的詳細資訊,不夠強大。模擬http請求的功能也不夠,且firebug常常是需要“無重新整理修改”,如果重新整理了頁面,所有的修改都不會儲存。

b.Wireshark是通用的抓包工具,但是比較龐大,對於只需要抓取http請求的應用來說,似乎有些大材小用。

c.Httpwatch也是比較常用的http抓包工具,但是隻支援IE和firefox瀏覽器(其他瀏覽器可能會有相應的外掛),對於想要除錯chrome瀏覽器的http請求,似乎稍顯無力,而Fiddler2 是一個使用本地 127.0.0.1:8888 的 HTTP 代理,任何能夠設定 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程式都可以使用 Fiddler。

2.什麼是Fiddler?

Fiddler是位於客戶端和伺服器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能夠記錄客戶端和伺服器之間的所有 HTTP請求,可以針對特定的HTTP請求,分析請求資料、設定斷點、除錯web應用、修改請求的資料,甚至可以修改伺服器返回的資料,功能非常強大,是web除錯的利器。

既然是代理,也就是說:客戶端的所有請求都要先經過Fiddler,然後轉發到相應的伺服器,反之,伺服器端的所有響應,也都會先經過Fiddler然後傳送到客戶端,基於這個原因,Fiddler支援所有可以設定http代理為127.0.0.1:8888的瀏覽器和應用程式。使用了Fiddler之後,web客戶端和伺服器的請求如下所示:

 

Fiddler 作為系統代理,當啟用 Fiddler 時,IE 的PROXY 設定會變成 127.0.0.1:8888,因此如果你的瀏覽器在開啟fiddler之後沒有設定相應的代理,則fiddler是無法捕獲到HTTP請求的。如下是啟動Fiddler之後,IE瀏覽器的代理設定:

 

以Firefox為例,預設情況下,firefox是沒有啟用代理的(如果你安裝了proxy等代理工具或外掛,是另外一種情況),在firefox中配置http代理的步驟如下:

工具->選項->高階->網路->設定  。並配置相應的代理如下:

 

就可以使用Fiddler抓取Firefox的HTTP請求了。

3.Fiddler使用介面簡介

Fiddler主介面的佈局如下:

主介面中主要包括四個常用的塊:

 

1.Fiddler的選單欄,上圖綠色部分。包括捕獲http請求,停止捕獲請求,儲存http請求,載入本地session、設定捕獲規則等功能。

 

2.Fiddler的工具欄,上圖紅色部分。包括Fiddler針對當前view的操作(暫停,清除session,decode模式、清除快取等)。

3.web Session皮膚,上圖黃色區域,主要是Fiddler抓取到的每條http請求(每一條稱為一個session),主要包含了請求的url,協議,狀態碼,body等資訊,詳細的欄位含義如下圖所示:

 

4.詳情和資料統計皮膚。針對每條http請求的具體統計(例如傳送/接受位元組數,傳送/接收時間,還有粗略統計世界各地訪問該伺服器所花費的時間)和資料包分析。如inspector皮膚下,提供headers、textview、hexview,Raw等多種方式檢視單條http請求的請求報文的資訊:

而composer皮膚下,則可以模擬向相應的伺服器傳送資料的過程(不錯,這就是灌水機器人的基本原理,也可以是部分http flood的一種方式)。

 

也可以貼上一次請求的raw http headers,達到模擬請求的目的:

 

Filter標籤則可以設定Fiddler的過濾規則,來達到過濾http請求的目的。最簡單如:過濾內網http請求而只抓取internet的http請求,或則過濾相應域名的http請求。Fiddler的過濾器非常強大,可以過濾特定http狀態碼的請求,可以過濾特定請求型別的http請求(如css請求,image請求,js請求等),可以過濾請求報文大於或則小於指定大小(byte)的請求: