Fiddler -工具使用介紹(附:攔截請求並修改返回數據)(轉)


一、Fiddler 介紹

Fiddler 是一個使用 C# 編寫的 http 抓包工具。它使用靈活,功能強大,支持眾多的 http 調試任務,是 web、移動應用的開發調試利器。

1,功能特點

  • 同 Httpwatch、Firebug 這些抓包工具一樣,Fiddler 夠記錄客戶端和服務器之間的所有 HTTP 請求,可以針對特定的 HTTP 請求,分析請求數據、設置斷點等。
  • 但 Fiddler 更為強大的是,它還可以修改請求的數據,甚至可以實現請求自動重定向,從而修改服務器返回的數據。
  • Fiddler 使用也十分方便。在打開 Fiddler 的時候,它就自動設置好了瀏覽器的代理,通過改寫 HTTP 代理,讓數據從它那通過,來監控並且截取到數據。當關閉 Fiddler 的時候,它又自動幫你把代理還原。
 

2,下載安裝

直接去 Fiddler 的官網下載即可。地址: http://www.telerik.com/fiddler
 

二、http 請求抓取

1,Fiddler 啟動后就自動開始工作了。

  • 使用瀏覽器隨便訪問幾個頁面,左側區域就會將捕獲的結果顯示出來。
  • 通過點擊左下角的圖標可以關閉/開啟抓包功能。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)

2,查看請求內容

雙擊某個會話請求,在右側的 Inspectors 選項卡中可以查看該會話的內容,上半部分是請求的內容,下半部分是響應的內容。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)

3,使用 Filters 過濾請求

由於 Fiddler 會抓取所有的 HTTP 請求,這樣會造成左邊的窗口不斷的更新,有時可能會對我們的調試造成干擾。我們可以通過過濾規則的設置,從而來過濾掉那些不想看到的請求。
 
(1)點擊 Fiters 選項卡,勾選左上角的 Use Filters 即可開啟過濾器。下方有兩個最常用的過濾條件:Zone 和 Host:
  • Zone:指定只顯示內網(Intranet)或互聯網(Internet)的內容
  • Host:指定顯示某個域名下的會話
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
 
(2)比如我們只想顯示與  hangge.com 的會話,可以這么設置。(如果有紅框中的文字,表示修改未生效,點擊即可。)
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)

三、AutoResponder 用法(攔截指定請求,並返回自定義數據)

AutoResponder 允許你攔截指定規則的求情,並返回本地資源或 Fiddler 資源,從而代替服務器響應。這個在我們平時開放調試中也是很有用的:
  • 比如在前端開發中,如果發現服務器上某個 css/JavaScript 文件有問題,直接上去改會影響生產環境的穩定。利用 Fiddler 的 AutoResponder 功能,我可以將需要修改的文件重定向到本地文件上,這樣就可以基於生產環境修改並驗證,確認后再發布。
  • 再比如服務端提供了接口和數據格式給前端調用,可能由於某些原因,接口還未開發完畢、或者返回數據有異常。為了不影響開發進度,前端仍然可以繼續調用這個接口,然后通過 Fiddler 將請求轉向本地的數據文件上。

(1)比如  hangge.com 首頁用到了 jQuery,假設我們要修改這個 js。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(2)首先將 js 文件保存到本地(如果本地已經有這個文件,可以跳過這步)
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(3)接着打開 AutoResponder 標簽設置,勾選前面兩個復選框,開啟 Fiddler 的請求自動重定向功能。
  • 第一個復選框的作用是開啟或禁用自動重定向功能,我們就可以在下面添加重定向規則了。
  • 第二個復選框框勾上時,不影響那些沒滿足我們處理條件的請求。
 
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(4)下面就要創建重定向規則了,將目標是這個 js 的 HTTP 請求重定向到本地文件。我們可以通過“Add…”按鈕手動添加規則,不過這個 URL 已經出現在我們的 session 列表中,可以直接拖動過來。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(5)接着修改這個規則。點擊下方的下拉框,選擇“Find a file…”,就可以選擇本地的文件作為返回的 body 內容。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(6)這里我們選擇剛才保持下來的 js 文件。這樣我們的請求重定向就設置好了。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(7)試着修改下本地這個 js 文件。比如我們在開頭加了個 alert 語句。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(8)刷新頁面,重新訪問就可以看到效果了。(如果瀏覽器有緩存,要先清下緩存)
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)

四、解密 HTTPS 的網絡數據

通常情況下,對於 HTTPS 請求,我們捕獲后是無法看到里面的數據。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
不過 Fiddler 可以通過偽造 CA 證書來欺騙瀏覽器和服務器,從而實現解密 HTTPS 數據包的目的。大概原理就是在瀏覽器面前 Fiddler 偽裝成一個 HTTPS 服務器,而在真正的 HTTPS 服務器面前 Fiddler 又裝成瀏覽器。
 
(1)要開啟 HTTPS 解密,我們依次點擊菜單欄 Tools -> Telerik Fiddler Options 
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(2)在彈出窗口中,勾選 HTTPS 標簽頁下的 Decrypt HTTPS Traffic。這是會彈出個對話框詢問是否安裝證書,選擇 Yes 安裝即可。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(3)再次訪問 HTTPS 頁面,可以發現數據已經夠被成功解析了。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)

五、自定義請求發送到服務器

在 Composer 面板中,我們可以向服務器發送自定義請求,可以手動創建一個新的請求,也可以從會話表中,拖拽一個現有的請求。
使用時我們只需要提供簡單的 URLS 地址即可。當然還可以在 RequestBody 定制一些屬性,如模擬瀏覽器 User-Agent 等等。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)

六、抓取 iPhone / Android 設備的數據包

想要 Fiddler 抓取移動端設備的數據包,其實很簡單。只要設置代理,讓這些數據通過 Fiddler 即可。
 
(1)首先確保 PC 和手機是在同一個局域網下。打開 Fidder,點擊菜單欄中 Tools –> Telerik Fiddler Options 
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(2)勾選 Connections 選項卡中的“Allow remote computers to connect”允許遠程連接。
  • 勾選后可能會要求重啟 Fiddler,那就重啟一下。
  • 默認代理端口是 8888,可以不需要修改。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(3)將手機端的代理設置為 PC 的 IP 和端口(這里假設我們 PC 地址為 192.168.1.101)
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(4)接着打開手機瀏覽器,訪問 PC 的地址+端口
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(5)在打開的頁面中點擊“FiddlerRoot certificate”,下載並安裝證書。
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)
(6)安裝完了證書,使用用手機訪問應用,就可以看到截取到的數據包了。(這里我使用百度外賣 App 隨便測試了下)
原文:Fiddler - 超好用的http抓包工具使用介紹(附:攔截請求並修改返回數據)


原文出自:www.hangge.com  轉載請保留原文鏈接:http://www.hangge.com/blog/cache/detail_1697.html


免責聲明!

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



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