Fiddler抓包使用教程


概述

Fiddler是做什么的,能幫助我們做什么?

1、能夠監聽http/httpS的流量,可以截獲從瀏覽器或者客戶端軟件向服務器發送的http/https請求; 
2、對截獲之后的請求,我們還能夠查看請求中的內容; 
3、偽造請求。不僅可以偽造客戶端的請求,還能夠偽造服務器的響應。——該功能能夠方便我們進行前后端的調式。 
4、測試網站的性能; 
5、解密https的外部會話。因為https本身是一種加密的協議,通過fiddle我們可以進行解密操作; 
6、提供第三方擴展插件,滿足更多需求。

工作原理

這里寫圖片描述

需要經過fiddler的代理服務器代為轉發請求與響應。 
如何實現? 
首先啟動fiddler,然后在瀏覽器中查看局域網代理服務器。圖示: 
這里寫圖片描述

可以看到代理服務器的地址變成了127.0.0.1 ,這就是fiddler監聽的地址。

代理模式

流模式與緩沖模式。

流模式:fiddler會實時把服務器返回給客戶端的數據進行返回。 緩沖模式:fiddler會等待所有的請求都准備好之后才返回給客戶端。

區別:緩沖模式下可以控制最后的服務器響應;而流模式下不能控制,是什么就是什么,更接近瀏覽器本身的真實行為。

選擇:具體情況具體選擇。

使用場景——提供的功能

1、開發環境的host配置; 
2、前后端接口連調——Composer 
3、定位線上bug——將發布文件代理到本地,快速定位線上bug; 
4、性能分析和優化——Inspectors 、Timeline

界面及使用介紹

這里寫圖片描述

1、菜單欄 
2、工具欄

(1)氣泡:備注。添加之后在會話欄的Comment列中顯示備注內容。

這里寫圖片描述

(2)Replay:回放【常用】。重播一個會話。快捷鍵:”選中會話+R”

這里寫圖片描述

(3)清除會話面板:過濾請求、清除請求。

這里寫圖片描述

(4)Go:斷點調式。配合狀態欄上的斷點工具。功能類似Debug。

這里寫圖片描述

(5)Stream:代理模式。默認:緩沖模式。點擊進行切換。

這里寫圖片描述

(6)Decode:解壓請求。解壓http請求里面的東西,幫助查看。

這里寫圖片描述

(7)Keep:指示fiddler的保持會話數目。

這里寫圖片描述

(8)Any Process:捕獲請求,只看需要的請求。將“靶心”投向需要的請求。

這里寫圖片描述

(9)Find:查找請求。用顏色標注查找的請求。

這里寫圖片描述

(10)Save:保存會話。

這里寫圖片描述

(11)截圖:默認5秒后截圖。

這里寫圖片描述

(12)計時器:第一次點擊-開始計時;第二次點擊–返回計時結果;第三次點擊-清零,重新計時。右鍵點擊—不計時。

這里寫圖片描述

(13)Browse:啟動瀏覽器;

這里寫圖片描述

(14)Clear Cache:清空緩存;

這里寫圖片描述

(15)TextWizard:【常用】編碼、解碼文本內容;

這里寫圖片描述

(16)Tearoff:浮窗。

這里寫圖片描述

3、會話面板【fiddler核心功能之一】

這里寫圖片描述

Server IP:需要配置。 這里寫圖片描述

Ctrl+F :搜索”static function Main()”,添加代碼:

FiddlerObject.UI.lvSessions.AddBoundColumn(“Server IP”,120,”X-HostIP”); 
然后重啟Fiddler。

4、詳情和數據統計面板

這里寫圖片描述

(1)Statistics:數據統計面板。性能分析。

這里寫圖片描述

RTT:【主要關注】體現一個請求從發送到返回響應的時間。 
通過選擇多個會話來得來這幾個會話的總的信息統計,比如多個請求和傳輸的字節數。選擇第一個請求和最后一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化。

(2)Inspectors :對抓到的請求進行解包,查看具體內容。

這里寫圖片描述

(3)AutoResponder:文件代理【常用】。例如,將一個需要服務端返回的文件,使用本地文件做代理。

這里寫圖片描述

(4)Composer:前后端接口連調,偽造請求【常用】。實現不寫任何js代碼的情況下實現與服務端的接口調式。

這里寫圖片描述

(5)Timeline: 性能分析。對選擇多個請求有意義。作用類似HttpWatch.

這里寫圖片描述

5、控制面板:

(1)命令行工具:執行一些快捷操作。

這里寫圖片描述

常見的命令有:

  • help 打開官方的使用頁面介紹,所有的命令都會列出來   
  • cls 清屏 (Ctrl+x 也可以清屏)
  • select 選擇會話的命令
  • ?.png 用來選擇png后綴的圖片
  • bpu 截獲request

(2)狀態欄:

這里寫圖片描述

Capturing:開啟/關閉 fiddler的監聽;

Web Browsers:過濾會話選擇;

常用功能

HOST配置 
將線上的服務器IP配置為指向本地服務器IP。將線上所有的文件的地址都映射到本地。

這里寫圖片描述

1、文件替換\線上bug調式——AutoResponder

(1)、可用於攔截某一請求,並重定向到本地的資源,或者使用Fiddler的內置響應。可用於調試服務器端代碼而無需修改服務器端的代碼和配置,因為攔截和重定向后,實際上訪問的是本地的文件或者得到的是Fiddler的內置響應。 
因此,如果要調試服務器的某個腳本文件,可以將該腳本攔截到本地,在本地修改完腳本之后,再修改服務器端的內容,這可以保證,盡量在真實的環境下去調試,從而最大限度的減少bug發生的可能性。

(2)、不僅是單個url,Fiddler支持多種url匹配的方式:

I. 字符匹配 如 example可以匹配 http://www.example.comhttp://example.com.cn 
II.完全匹配 以EXACT開頭表示完全匹配,如上邊的例子 EXACT:http://blog.csdn.net/ohmygirl 
III. 正則表達式匹配 
以regex: 開頭,使用正則表達式來匹配URL 
如:regex:(?insx).*.(css|js|php)$ 
表示匹配所有以css,js,php結尾的請求url

(3)、操作——模擬 
http://cn.babybus.com/join/index_campus.shtml下的function_campus.js文件

這里寫圖片描述

前后端接口連調——Composer

選中一個接口——>拖拽到Composer面板; 
准備工作: 
接口請求方式、請求參數; 
Get請求:參數直接寫在接口里面

這里寫圖片描述

Post請求:參數寫在Request Body里面。

這里寫圖片描述

同時,我們還能夠偽造Request Header中的Cookie。

這里寫圖片描述

網絡限速FiddlerScript——測試在不同網絡下的請求運行狀況

原理:將請求代碼化。 
OnBeforeRequest()表示在發送一個請求時需要做什么。

這里寫圖片描述

例如:

添加代碼: 
oSession[“resquest-trickle-delay”]=”3000”;//表示延時3秒請求; 
oSession[“response-trickle-delay”]=”3000”;//表示延時3秒響應;

缺點:需要編寫C#代碼。 
解決方案:使用圖形化插件;

捕獲IOS/Android移動設備上的請求

1)首先設置fiddler。菜單欄Tools—》Fiddler Options。

這里寫圖片描述 
這里寫圖片描述

2)讓你的電腦與移動設備處於同一個WiFi連接狀態(不要使用VPN),然后命令行ipconfig查看本機IP。

這里寫圖片描述

3)使用你的移動設備在瀏覽器上訪問本機IP加“端口號”。例如:192.168.1.28:8888,然后會出現一個Fiddler的證書,安裝該證書。

這里寫圖片描述 
這里寫圖片描述

4)設置你的移動設備。讓設備處在WiFi連接,設置代理為手動。然后填寫代理IP為你的電腦的IP,端口號為8888。

這里寫圖片描述

5)現在你就可以在手機上操作,例如訪問瀏覽器,此時在fiddler就能監聽到了。

插件介紹

插件下載地址: 
http://www.telerik.com/fiddler/add-ons 
例如: 
- Javascript Formatter——Javascript格式化插件 
- Traffic Differ——文件比較插件 
- 第三方插件 Willow ——http代理插件

附錄一

圖標解釋:

這里寫圖片描述

web session的常用的快捷鍵

  • CTRL+A: 選中所有的session;
  • ESC: 取消選中所有的session;
  • CTRL+I 反向選中;如果session已選中,則取消,否則選中;
  • CTRL+X 刪除所有的session;
  • Delete: 刪除選中的session;
  • Shift+Delete 刪除所有未選中的session;
  • R 重新執行當前請求;
  • SHIFT+R 多次重復執行當前請求
  • U: 無條件重新執行當前請求,發送不包含If-Modified-Since 和 If-None– Match的請求頭;
  • SHIFT+U 無條件地多次重復執行當前請求;
  • ALT+Enter 查看當前session的屬性;
  • Insert:切換是否用紅色粗體標記選中的session;
  • M 給選中的session添加描述;

 

原文:https://blog.csdn.net/yue549433330/article/details/82745760


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM