如何使用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,並且前邊有個圖示,但通常,不知道圖示是什麼意思。
具體文件可以關注私信我哦,各種教程哦!