抓包工具Fiddler的使用


 

 

Fiddler是最強大最好用的Web調試工具之一,它能記錄所有客戶端和服務器的http和https請求,允許你監視,設置斷點,甚至修改輸入輸出數據. 使用Fiddler無論對開發還是測試來說,都有很大的幫助。

閱讀目錄

  1. Fiddler的基本介紹
  2. Fiddler的工作原理
  3. 同類的其它工具
  4. Fiddler如何捕獲Firefox的會話
  5. Firefox 中使用Fiddler插件
  6. Fiddler如何捕獲HTTPS會話
  7. Fiddler的基本界面
  8. Fiddler的統計視圖
  9. QuickExec命令行的使用
  10. Fiddler中設置斷點修改Request
  11. Fiddler中設置斷點修改Response
  12. Fiddler中創建AutoResponder規則
  13. Fiddler中如何過濾會話
  14. Fiddler中會話比較功能
  15. Fiddler中提供的編碼小工具
  16. Fiddler中查詢會話
  17. Fiddler中保存會話
  18. Fiddler的script系統
  19. 如何在VS調試網站的時候使用Fiddler
  20. Response 是亂碼的

Fiddler的基本介紹

Fiddler的官方網站:  www.fiddler2.com

Fiddler官方網站提供了大量的幫助文檔和視頻教程, 這是學習Fiddler的最好資料。

Fiddler是最強大最好用的Web調試工具之一,它能記錄所有客戶端和服務器的http和https請求,允許你監視,設置斷點,甚至修改輸入輸出數據,Fiddler包含了一個強大的基於事件腳本的子系統,並且能使用.net語言進行擴展

你對HTTP 協議越了解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能幫助你了解HTTP協議.

Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具

Fiddler的工作原理

Fiddler 是以代理web服務器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 當Fiddler會自動設置代理, 退出的時候它會自動注銷代理,這樣就不會影響別的程序。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動注銷,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler.

 

同類的其它工具

同類的工具有: httpwatch, firebug, wireshark

 

Fiddler 如何捕獲Firefox的會話

能支持HTTP代理的任意程序的數據包都能被Fiddler嗅探到,Fiddler的運行機制其實就是本機上監聽8888端口的HTTP代理。 Fiddler2啟動的時候默認IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設置的,所以將Firefox的代理改為127.0.0.1:8888就可以監聽數據了。

Firefox 上通過如下步驟設置代理

點擊: Tools -> Options,  在Options 對話框上點擊Advanced tab - > network tab -> setting.

 

Firefox 中安裝Fiddler插件

修改Firefox 中的代理比較麻煩, 不用fiddler的時候還要去掉代理。 麻煩

推薦你在firefox中使用fiddler hook 插件, 這樣你非常方便的使用Fiddler獲取firefox中的request 和response

當你安裝fiddler后, 就已經裝好了Fiddler hook插件, 你需要到firefox中去啟用這個插件 打開firefox   tools->Add ons -> Extensions 啟動 FiddlerHook

 

 

Fiddler如何捕獲HTTPS會話

默認下,Fiddler不會捕獲HTTPS會話,需要你設置下, 打開Fiddler  Tool->Fiddler Options->HTTPS tab

 選中checkbox, 彈出如下的對話框,點擊"YES"

點擊"Yes" 后,就設置好了

Fiddler的基本界面

 看看Fiddler的基本界面

 

Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下圖

 

Fiddler的HTTP統計視圖

通過陳列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您當前請求的頁面。使用Statistics頁簽,用戶可以通過選擇多個會話來得來這幾個會話的總的信息統計,比如多個請求和傳輸的字節數。

選擇第一個請求和最后一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化

QuickExec命令行的使用

Fiddler的左下角有一個命令行工具叫做QuickExec,允許你直接輸入命令。

常見得命令有

help  打開官方的使用頁面介紹,所有的命令都會列出來

cls    清屏  (Ctrl+x 也可以清屏)

select  選擇會話的命令

?.png  用來選擇png后綴的圖片

bpu  截獲request

 

Fiddler中設置斷點修改Request

[作者:小坦克]  Fiddler最強大的功能莫過於設置斷點了,設置好斷點后,你可以修改httpRequest 的任何信息包括host, cookie或者表單中的數據。設置斷點有兩種方法

第一種:打開Fiddler 點擊Rules-> Automatic Breakpoint  ->Before Requests(這種方法會中斷所有的會話)

如何消除命令呢?  點擊Rules-> Automatic Breakpoint  ->Disabled

第二種:  在命令行中輸入命令:  bpu www.baidu.com   (這種方法只會中斷www.baidu.com)

如何消除命令呢?  在命令行中輸入命令 bpu

 

看個實例,模擬博客園的登錄, 在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 如下圖所示。 5. 結果是正確地登錄了博客園

 

 

Fiddler中設置斷點修改Response

當然Fiddler中也能修改Response

第一種:打開Fiddler 點擊Rules-> Automatic Breakpoint  ->After Response  (這種方法會中斷所有的會話)

如何消除命令呢?  點擊Rules-> Automatic Breakpoint  ->Disabled

第二種:  在命令行中輸入命令:  bpafter www.baidu.com   (這種方法只會中斷www.baidu.com)

如何消除命令呢?  在命令行中輸入命令 bpafter,

具體用法和上節差不多,就不多說了。

Fiddler中創建AutoResponder規則

Fiddler 的AutoResponder tab允許你從本地返回文件,而不用將http request 發送到服務器上。

看個實例. 1. 打開博客園首頁,把博客園的logo圖片保存到本地,並且對圖片做些修改。

2. 打開Fiddler 找到logo圖片的會話, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif,  把這個會話拖到AutoResponer Tab下

3. 選擇Enable automatic reaponses 和Unmatched requests passthrough

4. 在下面的Rule Editor 下面選擇 Find a file... 選擇本地保存的圖片.  最后點擊Save 保存下。

5.  再用IE博客園首頁, 你會看到首頁的圖片用的是本地的。

 

 

Fiddler中如何過濾會話

每次使用Fiddler, 打開一個網站,都能在Fiddler中看到幾十個會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話. Fiddler中有過濾的功能, 在右邊的Filters tab中,里面有很多選項, 稍微研究下,就知道怎么用。

 

Fiddler中會話比較功能

選中2個會話,右鍵然后點擊Compare,就可以用WinDiff來比較兩個會話的不同了 (當然需要你安裝WinDiff)

 

Fiddler中提供的編碼小工具

點擊Fiddler 工具欄上的TextWizard,  這個工具可以Encode和Decode string.

Fiddler中查詢會話

用快捷鍵Ctrl+F 打開 Find Sessions的對話框,輸入關鍵字查詢你要的會話。 查詢到的會話會用黃色顯示

Fiddler中保存會話

有些時候我們需要把會話保存下來,以便發給別人或者以后去分析。  保存會話的步驟如下:

選擇你想保存的會話,然后點擊File->Save->Selected Sessions

Fiddler的script系統

Fiddler最復雜的莫過於script系統了 官方的幫助文檔: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp

首先先安裝SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下圖

 

安裝成功后Fiddler 就會多了一個Fiddler Script tab, 如下圖

在里面我們就可以編寫腳本了, 看個實例 讓所有cnblogs的會話都顯示紅色。

把這段腳本放在OnBeforeRequest(oSession: Session) 方法下,並且點擊"Save script"

     if (oSession.HostnameIs("www.cnblogs.com")) {             oSession["ui-color"] = "red";         }

這樣所有的cnblogs的會話都會顯示紅色

 

如何在VS調試網站的時候使用Fiddler

我們在用visual stuido 開發ASP.NET網站的時候也需要用Fiddler來分析HTTP, 默認的時候Fiddler是不能嗅探到localhost的網站。不過只要在localhost后面加個點號,Fiddler就能嗅探到。

例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,  加個點號后,變成 http://localhost.:2391/Default.aspx 就可以了

 

第二個辦法就是在hosts文件中加入  127.0.0.1  localsite

如何你訪問http://localsite:端口號   。  這樣Fiddler也能截取到了。

 

Response 是亂碼的

有時候我們看到Response中的HTML是亂碼的, 這是因為HTML被壓縮了, 我們可以通過兩種方法去解壓縮。

1. 點擊Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"

2. 選中工具欄中的"Decode"。  這樣會自動解壓縮。

 

 

 

 

 

 

 

 

分類:   自動化測試,   Fiddler

 

 

 

 

抓包工具Fiddler的使用 

Fiddler是一款免費且功能強大的數據包抓取軟件.它通過代理的方式獲取程序http通訊的數據.我們可以利用它來檢測網頁和服務器的交互情況.下面,我們以http://blog.cersp.com/index/1000176.jspx的網址列表的獲取說明一下如何使Fiddler配合火車采集器獲取網址列表,以http://bbs.locoy.com的附件下載為例說明一下cookie的獲取..

Fiddler下載地址:http://www.fiddler2.com/dl/Fiddler2Setup.exe

一.網址列表的獲取

現在我們打開Fiddler,按Ctrl+x,將原來的監控的內容刪除,這樣便於尋找記錄.

我們首先打開個網頁http://blog.cersp.com/index/1000176.jspx,這個頁面在翻頁時我們看不到地址欄里網址有變化,在打開頁面查看源碼時也看不到有關列表的源碼.我們用fiddler監視后,找一個列表中的標題,如"簡單與復雜",使用搜索功能,點菜單 Edit里的 Find Sessions.

注意下邊的顏色是標記找到的記錄的數據,我們點擊按鈕Find Sessions,程序顯示找到了兩條有這個字符的記錄,我們點擊第一個數據,可以看到里邊有我們需要的數據,第二條是評論.在左上角,我們可以看到是該頁面是使用post方式獲取到列表的.

現在我們打開網頁中列表的第二頁,將原來的記錄清空.然后對得到的結果進行對比分析.

可以看到如下結果.默認我們看到的是Header內容,我們看圖中紅圈,點擊Raw,就可以看到發送的數據.

我們點擊view in NotePad ,可以在記事本中打開查看發送的具體數據.

可以看到如下內容.需要注意的是,紅色部分2+1就是程序里要填寫的網址,也就是 http://blog.cersp.com/index/article/getBlogArticlesByUserId.jspx,藍色部分 Pageno=2是表示第二頁.

我們再訪問第三頁列表,可以得到如下結果 ,可以看出,改變的只是一個頁數,所以我們在構造發送的數據時,只需要改變頁碼即可.其它的參數,一個是用戶id,一個是用戶文章數目,可以按需要進行修改.

現在我們看一下如果在采集器里進行設置,一個是選post方式,另一個是填寫網址,最后一個是將頁面部分替換成程序的[分頁].並設置要采集的頁數.

下邊的網址選定區域也可以設置,也可以不設置,和自動獲取網址是一樣的.我們可以看到最后采集到了需要的網址.

規則下載....其它相關的例子,請查看 POST方式獲得網址

二,Cookie的獲取

我們以http://bbs.locoy.com/spider-33617-1-1.html 的附件下載為例子,附件只有登陸以后才可以下載,未登陸前,我們采集時會看到提示登陸的內容.

我們打開fiddler,在瀏覽器里訪問一下該頁面,就可以看到Fiddler所獲取的數據.

注意操作時按以上提示進行點擊,方框里的內容就是cookie信息,注意開頭的cookie:不用復制.對於大多數的系統來說,直接用所有的cookie就可以,dz的有些特殊,你需要只使用帶_sid,_auth部分的cookie即可,也就是圖中選中的部分,我們復制這部分內容,粘貼到采網址部分下部的cookie信息的地方.

然后我們再去測試,可以看到內容,並能下載到模塊.

抓取cookie到些結束,相關規則 下載


免責聲明!

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



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