如何使用fiddler抓包(fiddler抓包教程例項)

1.抓包概念

抓包就是將網路傳輸傳送(請求)與接收(響應)的資料包進行截獲、重發、編輯、轉存等操作,也用來檢查網路安全。

2.為什麼抓包測試?(fiddler開源,C#)

1:有時候公司中介面文件某幾個資訊可能不詳細,要測試這些介面的請求引數與響應結果,以及資料傳輸是否安全,那麼可以通過抓包測試實現;
   2:通過抓取資料請求,可以放到Jmeter中對伺服器做壓力或者介面測試;
   3:通過抓包工具,可以分析介面的請求引數,響應結果,以及資料傳輸是否安全;
   4:通過抓包工具,可以編輯請求或者響應,達到測試效果。

3.抓包測試原理

設定代理的通訊過程

4.抓包工具Fiddler

4.1安裝Fiddler

根據連結下載Fiddler:

https://www.telerik.com/download/fiddler

下載完成之後,按預設選項安裝

雙擊安裝FiddlerSetup.exe

4.1.1findler介面

4.2設定Fiddler

Fiddler想要抓到資料包,要確保Capture Traffic是開啟,在File –> Capture Traffic。開啟後再左下角會有顯示,當然也可以直接點選左下角的圖示來關閉/開啟抓包功能。

設定Fiddler

*點選Tools-->Options-->Connections-->勾選Allow remote computer to connect(允許遠端裝置連線到Fiddler上),埠號8888

以上設定之後只能抓取http協議的地址

* 在抓取http資料包設定的基礎上進行以下的設定Fiddler抓取https資料包
   Tools-->Options-->Https
   勾選decrypt https traffic....> 可能會彈出安裝證書的詢問框(信任fiddler證書嗎?)

* 如果不彈框,action-->reset all ca(重置 刪除證書)

設定瀏覽器上網經過代理伺服器(IE和谷歌會自動設定)

從Firefox 瀏覽器右上角首選項->常規->網路設定

注意:如果不選擇也將此代理用於FTP和HTTPS預設只能抓取HTTP協議地址

設定手機上網經過代理伺服器(模擬器/真機)

* 必須保證手機網路和電腦網路在同一個網路內(要麼連線同一個wifi,要麼電腦開wifi,手機連線)

*首先獲取PC的ip地址:命令列中輸入:ipconfig,獲取ip地址

* 長按-->修改網路-->顯示高階選項-->手動代理-->電腦ip和fiddler埠號

手機抓包https操作

* 在手機上下載Fiddler的安全證書並安裝證書(在抓取http設定基礎上)
   瀏覽器上輸入ip 埠號,進行證書下載安裝
   使用Android手機的瀏覽器開啟:http://電腦ip:8888, 點“FiddlerRoot certificate” 然後安裝證書。(最好用手機自帶瀏覽器下載安裝)

如圖:

4.3.抓取app和web網頁資料包

抓取app資料包

開啟Fiddler,然後開啟手機中app,Fiddler抓包如下:

抓取web資料包

開啟Fiddler,然後開啟瀏覽器,輸入url,Fiddler抓包如下:

通過以上設定,可以進行http請求的抓取
   * 以抓取 兒歌多多 為例-->http請求

http://bb.ergeduoduo.com

若出現亂碼,點選提示

4.4.抓取內容的分析

Fiddler抓到的資料包的含義

名稱

含義

#

抓取HTTP Request的順序,從1開始,以此遞增

Result

HTTP狀態碼

Protocol

請求使用的協議,如HTTP/HTTPS/FTP等

Host

請求地址的主機名

URL

請求資源的位置

Body

該請求的大小

Caching

請求的快取過期時間或者快取控制值

Content-Type

請求響應的型別

Process

傳送此請求的程序:程序ID

Comments

允許使用者為此回話新增備註

Custom

允許使用者設定自定義值

Statistics 請求的效能資料分析

*隨意點選一個請求,就可以看到Statistics關於HTTP請求的效能以及資料分析了

Inspectors 檢視資料內容

*Inspectors是用於檢視會話的內容,上半部分是請求的內容,下半部分是響應的內容:

4.5.AutoResponder 允許攔截指定規則的請求

AutoResponder允許你攔截指定規則的請求,並返回本地資源或Fiddler資源,從而代替伺服器響應。 >> AutoResponder:檔案代理【常用】。例如,將一個需要服務端返回的檔案,使用本地檔案做代理。

匹配規則,如:

我將“http://ergeduoduo.com”這個關鍵字與我電腦“C:/Users/jiangnengbao/Desktop/phone_bg.jpg”這張圖片繫結了,點選Save儲存後勾選Enable rules,再訪問http://ergeduoduo.com,就會被劫持。

4.6.Composer 自定義請求傳送伺服器(介面測試)

Composer允許自定義請求傳送到伺服器,可以手動建立一個新的請求,也可以在會話表中,拖拽一個現有的請求 》》 n.(尤指古典音樂的) 創作者; 作曲者; 作曲家;

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

>> 前後端介面連調——Composer

選中一個介面——>拖拽到Composer面板;
   準備工作:
   介面請求方式、請求引數;
   Get請求:引數直接寫在介面裡面

4.7.新增過濾器

Fiters 是過濾請求用的,左邊的視窗不斷的更新,當你想看你係統的請求的時候,你重新整理一下瀏覽器,一大片不知道哪來請求,看著礙眼,它還一直重新整理你的螢幕。這個時候通過過濾規則來過濾掉那些不想看到的請求。

勾選左上角的Use Filters開啟過濾器,這裡有兩個最常用的過濾條件:Zone和Host

filter-->勾選use filter-->show only the following hosts(只展示下面的主機)-->填寫主機名,號隔開

* 過濾器不使用的時候取消勾選

4.8.斷點操作(篡改引數)

rules-->automatic breakpoints-->
   * before request 請求之前 :修改請求方式 請求路徑 請求頭 請求引數等...

編輯請求的內容 檢視對應的響應結果,來達到介面測試的目的

* after response 響應之後: 修改響應內容 響應頭....
   有時需要修改資料庫中的資料,檢視頁面內容是否動態跟隨改變,但是不是所有人都有資料庫操作許可權,此時可以藉助斷點編輯響應的內容 檢視頁面展示內容是否動態改變

斷點可以檢視app裡面網路有沒有重連機制,一個網路健壯的app是應該有重連機制的

4.9.模擬弱網

rules--->custome rules
   搜尋m_Simulate

if (m_SimulateModem) {

//每延遲300ms傳送1kb的資料,也就是每1s傳送3kb的資料
   // Delay sends by 300ms per KB uploaded.
   oSession["request-trickle-delay"] = "300";

//每延遲150ms下行1kb的資料
   // Delay receives by 150ms per KB downloaded.
   oSession["response-trickle-delay"] = "150";
   }

網路取值的演算法就是: 1000/下載速度 = 需要delay的時間(毫秒),比如50kb/s 需要delay20毫秒來接收資料。

1000/想要的速度(kb/s) = 延時毫秒值--->1000/50kb/s = 20ms
   * fiddler限速的原理是通過延長請求/響應的時間進行上行 下行的限速
   讓規則起作用,開啟規則
   * rules-->performance-->勾選 Simulate Modem Speeds(啟用限速規則)

請注意,當你存檔之後,原本已經勾選的SimulateModem Speeds 會被取消勾選,要記得再到Rules → Performances → Simulate Modem Speeds 勾選喔!

4.10.moke測試 》》 它的主要作用是模擬一些在應用中不容易構造或者比較複雜的物件,從而把測試與測試邊界以外的物件隔離開。

測試過程中往往遇到測試資料不全等問題,使用fiddler來作為代理對網路請求進行重定向來實現mock測試的功能。

重定向到本地資料,返回本地資料:

1. 編寫本地資料(資料來源根據具體介面來)

2. 選擇目標訊息,並且點選“AutoResponder”--》“Add Rule”,新增到右框中,並輸入攔截連結。

3.匯入本地資料

4.勾選三個選項

5.訪問連結,返回本地資料

重定向到其他連結上:

1.只需要改動一步,在最下面一欄改成需要訪問的連結即可

注意:不管是重定向到本地或其他連結都需要選中規則條目才能生效

抓包顏色鎖的說明

》》》

使用fiddler抓包時,會看到左側按照順序顯示session,並且前邊有個圖示,但通常,不知道圖示是什麼意思。

參考官方文件:UIGuide

這裡尤其注意“鎖圖示”這裡寫圖片描述,它用來標記,在網路環境受限時,為https建立http tunnel

· 響應是圖片

使用fiddler抓包時,會看到左側按照順序顯示session,並且前邊有個圖示,但通常,不知道圖示是什麼意思。

具體文件可以關注私信我哦,各種教程哦!