【抓包工具】Fiddler(详细介绍)
一、Fiddler與其他抓包工具的區別
1、Firebug雖然可以抓包,但是對于分析http請求的詳細信息,不夠強大。模擬http請求的功能也不夠,且firebug常常是需要“無刷新修改”,如果刷新了頁面,所有的修改都不會保存;
2、Wireshark是通用的抓包工具,能獲取HTTP,也能獲取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的內容,但如果是TCP、UDP協議可以用wireshark;
3、Httpwatch也是比較常用的http抓包工具,但是只支持IE和firefox瀏覽器(其他瀏覽器可能會有相應的插件);
而Fiddler 是一個使用本地 127.0.0.1:8888 的 HTTP 代理,任何能夠設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序都可以使用 Fiddler。
二、Fiddler的工作原理
??Fiddler是位于客戶端和服務器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能夠記錄客戶端和服務器之間的所有 HTTP請求,可以針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至可以修改服務器返回的數據。
??既然是代理,也就是說:客戶端的所有請求都要先經過Fiddler,然后轉發到相應的服務器,反之,服務器端的所有響應,也都會先經過Fiddler然后發送到客戶端,所以web客戶端和服務器的請求如圖所示:
??注:使用Fiddler的話,需要先設置瀏覽器的代理地址,才可以抓取到瀏覽器的數據包。而很方便的是在你啟動該工具后,它就已經自動幫你設置好了瀏覽器的代理了,當關閉后,它又將瀏覽器代理還原了。當然如果發現沒有自動設置瀏覽器代理的話,那就得自己動手去瀏覽器進行設置代理操作了。(可自行百度每個瀏覽器是如何設置代理的),反正一定要設置相應的代理,否則fiddler是無法捕獲到HTTP請求的。
三、Fiddler的使用界面介紹
1、主界面如圖所示:
2、左邊web session面板的字段及圖標含義如下:
3、右邊是詳情和數據統計面板
1)Statistics關于HTTP請求的性能(例如發送/接受字節數,發送/接收時間,還有粗略統計世界各地訪問該服務器所花費的時間)以及數據分析。如圖所示:
2)Inspectors是用于查看會話的內容,上半部分是請求的內容,下半部分是響應的內容,提供headers、textview、hexview,Raw等多種方式查看單條http請求的請求報文的信息,如圖所示:
3)AutoResponder 可用于攔截某一請求,即按自己添加的指定規則重定向到本地的資源或Fiddler資源,從而代替服務器響應。
舉例:將“baidu”這個關鍵字跟本地電腦的一張圖片綁定了,再訪問帶有“baidu”關鍵字的地址,就會被劫持,具體步驟如圖所示:
啟用規則后(勾選enable rules),在瀏覽器輸入pan.baidu.com,會發現被劫持了,顯示的是綁定的本地圖片,而不是pan.baidu.com的頁面
4)Composer 自定義請求發送服務器,Parsed模式下你只需要提供簡單的URLS地址即可,如圖所示
5)Filters 即過濾規則,通過設置過濾規則來過濾所需的http請求,如圖8所示,勾選左上角的Use Filters開啟過濾器:
而這里有兩個最常用的過濾條件:Zone和Host
a.Zone 指定只顯示內網(Intranet)或互聯網(Internet)的內容,如圖所示:
b.Host 指定顯示某個域名下的會話,如圖所示,如果框框為黃色,表示修改未生效,點擊紅圈里的文字即可:
6)timeline 請求響應時間,在左側會話窗口點擊一個或多個請求,Timeline 便會顯示指定內容從服務端傳輸到客戶端的時間,如圖所示:
四、Fiddler的其他功能介紹
1、Fiddler 設置解密HTTPS的網絡數據
??Fiddler可以通過偽造CA證書來欺騙瀏覽器和服務器。大概原理就是在瀏覽器面前Fiddler偽裝成一個HTTPS服務器,而在真正的HTTPS服務器面前Fiddler又裝成瀏覽器,從而實現解密HTTPS數據包的目的。
??解密HTTPS需要手動開啟,依次點擊:Tools –> Fiddler Options –> HTTPS ->勾選Decrypt HTTPS traffic -> 點擊Yes,在彈出的對話框中選擇是即可,如圖所示
2、Fiddler 內置命令與斷點
??FIddler斷點功能就是將請求截獲下來,直接點擊Fiddler下圖的圖標位置,就可以設置全部請求的斷點,也可以在命令欄輸入斷點命令進行截獲,如圖所示
而斷點的命令則可以精確設置需要截獲那些請求,如下表所示:
??注:1、如bpafter斷點命令使用方法為:bpafter 后邊跟字符串->表示中斷所有包含該字符串的請求; bpafter ->表示解除剛剛的中斷斷點;
3、中斷會話后修改表單內容
??不知道什么原因捕獲不了登錄界面的會話(除了博客園網站外,其他很多網站的會話都捕獲不到->解決方法:按上面‘Fiddler 設置解密HTTPS的網絡數據’所寫的步驟設置一下),所以下面的實例是來自小坦克的,詳細博客地址在圖片正文貼著。
? l看個實例,模擬博客園的登錄, 在IE中打開博客園的登錄頁面,輸入錯誤的用戶名和密碼,用Fiddler中斷會話,修改成正確的用戶名密碼。這樣就能成功登錄:
1. 用IE 打開博客園的登錄界面 http://passport.cnblogs.com/login.aspx
2. 打開Fiddler, 在命令行中輸入bpu http://passport.cnblogs.com/login.aspx
3. 輸入錯誤的用戶名和密碼,點擊登錄
4. Fiddler 能中斷這次會話,選擇被中斷的會話,點擊Inspectors tab下的WebForms tab 修改用戶名密碼,然后點擊Run to Completion 如圖14所示。
5. 結果是正確地登錄了博客園(當然Fiddler中也能修改Response)
4、Fiddler中會話比較功能
??選中2個會話,右鍵然后點擊Compare,就可以用WinDiff來比較兩個會話的不同了(注:需要安裝WinDiff,自行百度安裝就可以了,這里就不細說安裝步驟),如圖所示
5、Fiddler中提供的編碼工具
??點擊Fiddler 工具欄上的TextWizard, 這個工具可以Encode和Decode string,如圖所示
6、Fiddler中的查詢會話
??Edit->Find Sessions(或Ctrl+F)打開Find Sessions的對話框,輸入關鍵字查詢你要的會話。 查詢到的會話會用黃色顯示,如圖所示
7、Fiddler中的保存會話
??有些時候我們需要把會話保存下來,以便發給別人或者以后去分析。 保存會話的步驟如下:File->Save->Selected Sessions
8、Fiddler中的script系統
??首先先安裝SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now… 如圖所示
??安裝成功后Fiddler 就會多了一個Fiddler Script tab,如圖所示:
??在里面我們就可以編寫腳本了, 看個實例讓所有cnblogs的會話都顯示紅色。把這段腳本放在OnBeforeRequest(oSession: Session) 方法下,并且點擊”Save script”
這樣所有的cnblogs的會話都會顯示紅色。
9、如何在VS調試網站的時候使用Fiddler
??我們在用visual stuido 開發ASP.NET網站的時候也需要用Fiddler來分析HTTP, 默認的時候Fiddler是不能嗅探到localhost的網站。不過只要在localhost后面加個點號,Fiddler就能嗅探到。
??例如:原本ASP.NET的地址是 http://localhost:9999/Default.aspx, 加個點號后,變成 http://localhost.:9999/Default.aspx 就可以了
關于Fiddler的詳細介紹就到這里了,其他數據抓包分析和手機抓包分析下次再操作。
總結
以上是生活随笔為你收集整理的【抓包工具】Fiddler(详细介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JDK源码】java.lang包常用类
- 下一篇: 【JDK源码】java.io包常用类详解