fiddler配置及使用教程

本文基於Fiddler4講解基本使用css

fiddler抓包原理

注意:Fiddler 是以代理web服務器的形式工做的,它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動註銷,這樣就不會影響別的 程序。不過若是Fiddler非正常退出,這時候由於Fiddler沒有自動註銷,會形成網頁沒法訪問。解決的辦法是從新啓動下Fiddler。html

配置

打開Fiddler  Tool->Fiddler Options->HTTPS 。  (配置完後記得要重啓Fiddler).android

選中"Decrpt HTTPS traffic",    Fiddler就能夠截獲HTTPS請求,第一次會彈出證書安裝提示,若沒有彈出提示,勾選Actions-> Trust Root Certificateweb

另外,若是你要監聽的程序訪問的 HTTPS 站點使用的是不可信的證書,則請接着把下面的 「Ignore servercertificate errors」 勾選上。正則表達式

證書安裝提示:windows

點擊Yes,留意一下紅框裏面的內容,DO_NOT_TRUST_FiddlerRoot ,這個就是證書的名稱。 瀏覽器

點擊是。 緩存

點擊肯定,這樣Fiddler證書就已經添加成功了。服務器

查看一下證書,Actions—>open windows certificate Manager cookie

能夠證書已經添加進去了,證書名稱就是以前提醒你們留意的,【DO_NOT_TRUST_FiddlerRoot】

 

 手機端抓包配置

 

fiddler監聽端口默認是 8888,你能夠把它設置成任何你想要的端口。勾選上 「Allow remote computersto connect」 ,容許遠程設備鏈接。

爲了減小干擾,能夠去掉 「Act assystem proxy on startup」 。

手機端(客戶端)設置

首先查看電腦的 IP 地址,確保手機和電腦在同一個局域網內

Android 手機上的配置

將 Fiddler 代理服務器的證書導到手機上才能抓這些 APP 的包。導入的過程:打開瀏覽器,在地址欄中輸入代理服務器的 IP 和端口(即電腦的IP加fiddler的端口),會看到一個Fiddler 提供的頁面,而後肯定安裝就行了

瀏覽器輸入下載證書.png

打開 WiFi 設置頁面,選擇要鏈接的 wifi ,而且長按,在彈出的對話框中,選擇「修改網絡」。在接下來彈出的對話框中,勾選「顯示高級選項」。在接下來顯示的頁面中,點擊「代理」,選擇「手動」。代理服務器主機名設爲 PC 的 IP ,代理服務器端口設爲 Fiddler 上配置的端口 8888,點」保存」。

手機配置代理.png

蘋果手機上的配置

蘋果手機上的配置其實跟 Android 手機基本是同樣的。如圖

至此已配置完成。

Fiddler的使用

視圖功能區域

會話的概念:一次請求和一次響應就是一個會話。

fiddler主界面

 

下面挑幾個快捷功能區中經常使用幾項解釋,其餘功能本身嘗試:

快捷功能區
1:給會話添加備註信息 2:從新加載當前會話 3:刪除會話選項 4:放行,和斷點對應,後面詳細講解 5:響應模式。也便是,當Fiddler拿到遠程的response後是緩存起來一次響應給客戶端仍是以stream的方式直接響應。 6:解碼。有些請求是被編碼的,點擊這個按鈕後能夠根據響應的編碼格式自動解碼。 7:查找會話。 8:保存會話。 9:截屏。截屏後,會以會話的方式返回一個截圖。
接着來看看會話列表

 

#欄圖標說明

快捷鍵

刪除一條會話,能夠在選中會話後,按del刪除,如若要清空列表,能夠用Ctrl+X

左鍵點擊單條HTTP請求,能夠在右側的tab面板中看到以下信息:

1. Statistic。

關於HTTP請求的性能和其餘數據分析:

 

咱們能夠從中看出一些基本性能數據:如DNS解析的時間消耗是8ms,創建TCP/IP鏈接的時間消耗是8ms等等信息。

2. Inspectors

提供headers、textview、hexview,Raw等多種方式查看單條http請求的請求報文的信息,分爲上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。對於每一部分,提供了多種不一樣格式查看每一個請求和響應的內容。

a、ImageView標籤 

JPG 格式使用 ImageView 就能夠看到圖片,選擇一條Content-Type是image/jpeg的回話,點擊TextView

 

b、TextView 標籤

HTML/JS/CSS 使用 TextView 能夠看到響應的內容。選擇一條Content-Type是text/html的回話,點擊TextView

 

c、Raw標籤

Raw標籤能夠查看響應報文和響應正文,可是不包含請求報文

d、Auth標籤

Auth則能夠查看受權Proxy-Authorization 和 Authorization的相關信息

e、Cookies標籤

Cookies標籤能夠看到請求的cookie和響應的set-cookie頭信息。

3.AutoResponder標籤

Fiddler 的AutoResponder tab容許你從本地返回文件,而不用將http request 發送到服務器上。

下邊直接說他的使用方式把:

使用的是手機上邊的百度手機助手的棋牌遊戲界面。

一、首先看圖 (咱們來重定向第一個歡樂鬥地主這個圖片)

二、打開Fiddler,而後點擊棋牌遊戲進入上邊這個界面,就能發現會請求當前顯示的這五張圖片

 這個時候咱們切換到AutoResponder這個界面,點擊鼠標左鍵,把要重定向的這個session會話拖動到AutoResponder界面中

選擇了咱們要返回的圖片之後,而後點擊save。

而後關掉應該,清楚應用緩存,而後在打開,點擊棋牌遊戲,能夠看到

這是實現了替換其中一個,也許你會說,是否是原本就是那樣啊,那麼在介紹一個根據別的規則來進行重定向。

 

咱們經過重定向向,把全部的百度手機助手中的圖片都替換成剛纔的小頭像。

 

前便的操做時同樣的,拖過來之後咱們能夠點擊Save前邊的倒的小三角,而後就能夠看到,裏邊有不少規則,如今咱們選擇

第一個:這是一個正則表達式。

而後在選擇剛纔的那個頭像圖片,而後save。

清除緩存,從新打開,能夠看下圖:

能夠看到,全部的jpg格式的都變成了咱們的頭像了。

關於重定向還有不少,剩下的就須要本身慢慢研究了。

小結:AutoResponder功能是Fiddler最實用的功能之一,Rule能夠自由地設定,可使用搜索(默認)、精確匹配(EXACT)、正則表達式匹配(REGEX)。處理方式能夠選擇使用文件,也能夠選擇合適的時間暫停數據流(*bpu、*bpafter),人工干預。經過以上幾個步驟,咱們演示了怎樣將HTTP請求重定向到本地的文件,進行調試,這在咱們診斷跟蹤一些js文件但卻不能修改js文件時很是有用。比 如:在用瀏覽器測試P頁面時,P頁面引入了一個js資源文件R.js,因爲R.js文件在服務器S上,而我此時又不能登陸S服務器(沒有S服務器的賬 號),此時咱們就能夠經過瀏覽器將R.js文件下載到本地,而後對本地的R.js文件進行調整,最後經過設置Fiddler,將R.js文件的請求使用本 地的R.js文件。

4.Composer 自定義請求發送服務器

Composer容許自定義請求發送到服務器,能夠手動建立一個新的請求,也能夠在會話表中,拖拽一個現有的請求

Parsed模式下你只須要提供簡單的URLS地址便可(以下圖,也能夠在RequestBody定製一些屬性,如模擬瀏覽器User-Agent)

 

5.斷點請求/響應

 

如圖,箭頭所指的位置時能夠點擊的。共三種狀態:
空白:不設置斷點。
箭頭向上:表示斷點請求。此時客戶端的請求是沒法直接到達目標服務器的,須要手動控制。
箭頭向下:表示斷點響應。此時目標服務器的響應是沒法直接到達客戶端的,須要手動控制。

還有一種打斷點的方式

在命令行中輸入命令: 

bpu www.baidu.com  (斷點請求)

bpuafter www.baidu.com(斷點響應)

這種方法只會中斷www.baidu.com

斷點請求並修改

如圖,操做步驟:

  1. 設置斷點請求,訪問網頁
  2. 點擊對應的會話
  3. 查看請求報文信息
  4. 修改請求內容
  5. 完成斷點,放行,把該請求發送給目標服務器。

圖中Break On Response表示把請求發給服務器,可是服務器的響應被fiddler攔截,此時能夠修改響應內容(和斷點響應相似)。

斷點響應並修改

和斷點請求操做相似,只是在響應區域修改報文信息便可。
在斷點響應時,請注意超時時間。

6.過濾域名

Fiddler抓包能夠完成咱們移動開發者的調試測試需求。可是多餘的網頁請求和手機的其餘連接影響咱們手機開發的需求。因此咱們須要排除其餘無用的包,只關注咱們指定的域名的請求包。

打開fiddler,找到Filters選項並點擊打開。如圖所示

默認狀況下,這個頁面是灰色的,表明默認不過濾任何請求。如今咱們勾選 Use Filters 。

通常經常使用的有三種過濾條件:

1.域名過濾,只顯示特定域名的記錄:

*.baidu.com表示全部的百度二級域名會話;*baidu.com表示一級域名+二級域名的會話。設置好了後必定要點擊Actions生效;

2.類型過濾,通常對各類圖片、CSS、JS這類的靜態素材也不須要看的狀況下,直接所有過濾掉

 .*\.(bmp|css|js|gif|ico|jp?g|png|swf|woff) 

須要過濾多少本身直接加入就行了

3.根據返回狀態碼,好比只想顯示200的狀態,其餘的不顯示

Fiddler 的內置命令

?

問號(?)後邊跟一個字符串,Fiddler 將全部會話中存在該字符串匹配的所有高亮顯示(下圖輸入的是 ?google.com)

舒適提示:匹配的字符串是 Protocol、Host 和 URL 中的任何子字符串。

> 和 <

大於號(>)和小於號(<)後邊跟一個數值,表示高亮全部尺寸大於或小於該數值的會話。

好比我輸入 >5000,按下回車後結果以下:

舒適提示:你能夠直接輸入 >5k 表示你想高亮全部尺寸大於 5KB 的會話。

=

等於號(=)後邊能夠接 HTTP 狀態碼或 HTTP 方法,好比 =200 表示高亮全部正常響應的會話。

下圖輸入了 =POST,表示但願高亮全部 POST 方法的會話:

@

@ 後邊跟的是 Host,好比我想高亮全部魚C論壇的鏈接,我能夠 @bbs.fishc.com

舒適提示:下邊 bpafter、bps、bpv、bpm 和 bpu 用於設置斷點。

會話被中斷下來以後,點擊頁面上方的 Go 按鈕放行當前中斷下來的會話,但新的匹配內容仍是會被斷下來,輸入命令但不帶參數表示取消以前設置的斷點。

bpafter

bpafter 後邊跟一個字符串,表示中斷全部包含該字符串的會話。

好比我想中斷全部包含 fishc 的響應,那麼我輸入 bpafter fishc,而後在瀏覽器輸入 bbs.fishc.com,發現並無收到服務器響應,所以都給 Fiddler 斷下來了:

bps

bps 後邊跟的是 HTTP 狀態碼,表示中斷全部爲該狀態碼的會話。

bpv 或 bpm

bpv 或 bpm 後邊跟的是 HTTP 方法,表示中斷全部爲該方法的會話。

bpu

跟 bpafter 相似,區別:bpu 是在發起請求時中斷,而 bpafter 是在收到響應後中斷。

cls 或 clear

清除當前的全部會話。

dump

將全部的會話打包成 .zip 壓縮包的形式保存到 C 盤根目錄下。

g 或 go

放行全部中斷下來的會話。

hide

將 Fiddler 隱藏。

show

將 Fiddler 恢復。

urlreplace

urlreplace 後邊跟兩個字符串,表示替換 URL 中的字符串。好比 urlreplace baidu fishc 表示將全部 URL 的 baidu 替換成 fishc。

舒適提示:直接輸入 urlreplace 不帶任何參數表示恢復原來的樣子。

start

Fiddler 開始工做。

stop

Fiddler 中止工做。

quit

關閉 Fiddler。

select

select 後邊跟響應的類型(Content-Type),表示選中全部匹配的會話。

好比但願 Fiddler 選中全部的圖片,可使用 select image;

而 select css 則選中全部的 css 文件;

固然,select htm 就是選中全部的 html 文件啦~

allbut 或 keeponly

跟 select 相似,不過 allbut 和 keeponly 會將全部無關的會話刪除。

好比我只想看圖片,那麼我能夠 keeponly image,表示將全部與圖片無關的會話刪除:

!dns

後邊跟一個域名,執行 DNS 查找並在右邊的 LOG 欄打印結果:

!listen

設置其餘監聽的端口,默認是 8888。。

相關文章
相關標籤/搜索