Fiddler是一個C#實現(xiàn)的瀏覽器抓包和調(diào)試工具,fiddler啟用后作為一個proxy存在于瀏覽器和服務(wù)器之間,從中監(jiān)測瀏覽器與服務(wù)器之間的http/https級別的網(wǎng)絡(luò)交互。目前可以支持各種主要瀏覽器如IE, Chrome, FireFox, Safari, Opera。Fiddler是最強(qiáng)大最好用的Web調(diào)試工具之一,已更新至4.4.9.9版。它能記錄所有客戶端和服務(wù)器的http和https請求,允許用戶監(jiān)視,設(shè)置斷點(diǎn),甚至修改輸入輸出數(shù)據(jù)。
主要用途:
1、Web會話操作
輕松編輯Web會話:只需設(shè)置一個斷點(diǎn)即可暫停會話處理并允許更改請求/響應(yīng)。撰寫您自己的HTTP請求并通過Fiddler運(yùn)行它們。
2、性能測試
提琴手可以讓您一目了然地看到“總頁重”,HTTP緩存和壓縮。用“標(biāo)記任何大于25kb的未壓縮響應(yīng)”等規(guī)則隔離性能瓶頸。
3、可定制的免費(fèi)工具
受益于豐富的可擴(kuò)展性模型,從簡單的FiddlerScript到可以使用任何.NET語言開發(fā)的強(qiáng)大擴(kuò)展。
4、安全測試
解密HTTPS流量并使用中間人解密技術(shù)顯示和修改Web應(yīng)用程序請求。配置Fiddler以解密所有流量,或僅解密特定會話。
5、HTTP / HTTPS流量記錄
使用Fiddler記錄您的計算機(jī)和Internet之間的所有HTTP(S)流量。調(diào)試幾乎所有支持代理的應(yīng)用程序(IE,Chrome,Safari,F(xiàn)irefox,Opera等)的流量。
6、Web調(diào)試
調(diào)試來自PC,Mac或Linux系統(tǒng)和移動(iOS和Android)設(shè)備的流量。確保在客戶端和服務(wù)器之間傳輸正確的Cookie,標(biāo)題和緩存指令。支持任何框架,包括.NET,Java,Ruby等。
更新日志:
v5.0
1、SampleRules.js 現(xiàn)在有了窗口風(fēng)格的線條結(jié)尾,可以方便地在記事本中編輯
2、Windows 10 固定安裝問題
3、改進(jìn)更新
Fiddler使用方法:
基本界面
Fiddler的界面通過多個標(biāo)簽頁形式顯示各種類型的信息,最常用的標(biāo)簽頁為Inspectors,通過這個標(biāo)簽頁可以查看抓取的網(wǎng)絡(luò)請求和回復(fù)的詳細(xì)內(nèi)容。
抓包每一幀前面都有不同的圖標(biāo)表示各種請求類型或狀態(tài),
抓包方法:
1. 開發(fā)fiddler之后默認(rèn)情況下就是抓包狀態(tài),可以查看界面左下角顯示capturing,如果沒有顯示,單擊此處可以開始抓包。
2. 如果訪問的網(wǎng)站是https網(wǎng)站,則需要通過Tools - Fiddler Options - Https - Decrypt Http Traffic來設(shè)置將https解密
3. 通過瀏覽器發(fā)送請求。(在windows平臺上此處并不限于瀏覽器,只要程序是通過winhttp或者wininet發(fā)送請求都可以被監(jiān)測到)
4. 在收到回復(fù)后回到fiddler查看抓包內(nèi)容。
關(guān)鍵字查找
1. 通過Ctr+F調(diào)出查找對話框,在全局查找關(guān)鍵字
2. 在選中特定請求之后可以在Inspecters - Raw中分別在特定的請求或回復(fù)中查找內(nèi)容
3. 如果回復(fù)被壓縮過,通過單擊提示按鈕可以將內(nèi)容解壓縮
自動回復(fù)
請求自動回復(fù)應(yīng)用也比較廣,例如將其他機(jī)器抓包倒入自動回復(fù),然后再本機(jī)回放重現(xiàn)問題;或者動態(tài)調(diào)試過程中不希望有些請求去調(diào)用服務(wù)器,而在自動回復(fù)中配制或者進(jìn)行相應(yīng)的更改直接查看效果。
1. 切換到自動回復(fù)(AutoResponder)標(biāo)簽頁
2. 選中Enable automatic responses
3. 點(diǎn)擊Import按鈕導(dǎo)入抓包的saz文件
4. 可以通過默認(rèn)Url或者通過Rule Editor來修改請求匹配規(guī)則
斷點(diǎn)設(shè)置
1. 通過Rules - Automatic Breakpoints - Before Requests/After Response設(shè)置斷點(diǎn)。
2. 斷點(diǎn)在請求或者回復(fù)受到后觸發(fā),可以動態(tài)的修改請求或者回復(fù)來進(jìn)行不同的測試。
自定義擴(kuò)展腳本
Fiddler支持通過Jscript方式擴(kuò)展功能,比如自動通過腳本對請求及回復(fù)進(jìn)行處理。具體的實例可以參考fiddler提供的實例代碼。
http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
以下是兩個簡單例子
以下提到的方法可以在CustomRule.js中找到并進(jìn)行相應(yīng)的更改,
可以通過Rules - CustomRule來打開CustomRule.js.
目標(biāo) | 需要添加的代碼 | 需要添加代碼的方法 |
Add a request header | oSession.oRequest["NewHeaderName"] = "New header value"; | OnBeforeRequest |
Delete a response header | oSession.oResponse.headers.Remove("Set-Cookie"); | OnBeforeResponse |