1. 程式人生 > >Fidder教程

Fidder教程

目錄 cookies 可能 字節 字符串替換 .com 方法 perm 下載地址

一.Fiddler的基本介紹

  Fiddler的官方網站:http://www.telerik.com/fiddler

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

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

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

二.Fiddler的工作原理

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

  技術分享技術分享

三.同類的其它工具

  httpwatch\firebug\wireshark\charles

四.安裝

  1.安裝Fiddler

    下載地址:https://www.telerik.com/download/fiddler

    一路next,安裝完成即可

  2.安裝證書生成器

    下載證書插件certmarker  下載地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

    一路next,安裝完成即可

五.基本界面介紹

  界面布局:

    技術分享

  一)工具欄

  工具欄各功能介紹按照圖標從左往右介紹如下圖所示:

  技術分享

  二)websession面板(會話列表)

  會話列表顯示每條http請求的信息,各字段含義如下圖所示:

  技術分享

  #號列中的圖標,每種圖標代表不同的響應類型,具體如下:

  技術分享

  三)QuickExec命令

    QuickExec 命令行允許你快速執行腳本命令,在 Fiddler 中使用快捷鍵 Alt + Q 可以快速將焦點設置到命令行。

    如果當前在 Web Sessions 面板選擇了一個 Session,可以使用快捷鍵 Ctrl + I 快速將 Session URL 直接插入到命令行當前光標處。

    QuickExec命令:可快速執行腳本命令

  技術分享

  常見得命令有:

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

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

  select 選擇會話的命令

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

  bpu 截獲request

  

  默認命令參考:
  以下列表中的命令只能確保在最新版本的 Fiddler 中才生效。
  多數命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能沒有最新的命令。如果要得到最新的命令,要麽刪除你的 CustomRules.js,要麽復制 SampleRules.js 的 ExecAction 到 CustomRules.js 中。

    1、?sometext
      Fiddler 會高亮所有 URL 匹配問號後的字符的全部 session。按回車聚焦到匹配的 session 上。
      範例:
      ?searchtext

    2、>size
      選擇響應尺寸大於指定大小的全部 session。按回車聚焦到匹配的 session 上。
      範例:
      >40000 (選擇響應大於 40kb 的請求)

    3、<size
      選擇響應尺寸大於指定大小的全部 session。按回車聚焦到匹配的 session 上。
      範例:
      <5k (選擇響應小於 5kb 的請求)

    4、=status
      選擇響應 HTTP 狀態等於指定值的全部 session。按回車聚焦到匹配的 session 上。
      範例:
      =301 (選擇 301 重定向的請求)

    5、@host
      選擇包含指定 HOST 的全部 session。按回車聚焦到匹配的 session 上。
      範例:
      @msn.com (選擇 www.msn.com、login.msn.com 等 session)

    6、bold sometext
      加粗顯示 URL 包含指定字符的全部 session。
      範例:
      bold test.php (加粗顯示 URL 中包含 test.php 的 Session
      bold (不帶參數表示清空所有加粗顯示的 Session)

    7、bpafter sometext
      中斷 URL 包含指定字符的全部 session 響應。
      範例:
      bpafter test.php (中斷 URL 中包含 test.php 的 Session
      bpafter (不帶參數表示清空所有設置斷點的 Session)
  

    8、bps
      中斷 HTTP 響應狀態為指定字符的全部 session 響應。
      範例:
      bps 404 (中斷所有響應 404 的 Session
      bps (不帶參數表示清空所有設置斷點的 Session)

    9、bpv 或 bpm
      中斷指定請求方式的全部 session 響應。
      範例:
      bpv POST (中斷所有 POST 請求的 Session
      bpv (不帶參數表示清空所有設置斷點的 Session)

    10、bpu
      中斷請求 URL 中包含指定字符的全部 session 響應。
      範例:
      bpu test.php (中斷所有請求 URL 中包含指定字符的 Session
      bpu (不帶參數表示清空所有設置斷點的 Session)

    11、cls 或 clear
      清除所有 session
      範例:
      cls

    12、dump
      將所有 session 打包到 C 盤根目錄下的一個 zip 壓縮包中
      範例:
      dump
    13、g 或 go

      繼續所有中斷的 Session

      範例:
      g

    14、help
      用 IE 打開 QuickExec 在線幫助頁
      範例:
      help

    15、hide
      將 Fiddler 隱藏到任務欄圖標中
      範例:
      hide

    16、urlreplace
      將 URL 中的字符串替換成特定的字符串
      範例:
      urlreplace SeekStr ReplaceWithStr
      urlreplace (不帶參數表示清空所有之前的設置)

    17、start
      將 Fiddler 為系統代理
      範例:
      start

    18、stop
      將 Fiddler 從系統代理註銷
      範例:
      stop

    19、show

      將 Fiddler 從任務欄圖標恢復為圖形界面,此命令在命令行工具 ExecAction.exe 中使用
      範例:
      show

    20、slect
      選擇響應類型 (Content-Type) 為指定字符的所有 session
      範例:
      slect image

      slect css

      select htm

    21、allbut 或 keeponly
      選擇響應類型 (Content-Type) 不是指定字符的所有 session
      範例:
      allbut xml
      allbut java

    22、quit
      退出 Fiddler
      範例:
      quit

  四)詳情和數據統計面板

    詳情和數據統計面板,每條http請求的具體統計,下面是頁簽從左往右依次說明

  1 Statistics頁簽:顯示當前用戶的session的匯總信息,包括session總數,發送字節數,接受字節數,響應類型的匯總表,世界各地通過不同請求方式所需的時間等

  底部圖標標簽可現實、復制和收起餅圖等

  技術分享

  2、Inspectors頁簽:可使用不同格式查看請求和響應內容,上部顯示發出的請求相關信息,下部顯示接收的響應相關信息

  技術分享

  中間的黃色提示文字表示,此請求為了提高性能,而做了編碼或者壓縮(例如 GZIP),需要轉換後才能在 TextView 裏正常瀏覽。點擊該區域或者下面的 Remove HTTP Chunked Encoding 按鈕,都能執行轉換或者解壓縮。如果該請求沒編碼/壓縮是看不見此提示的

  請求(Request)部分字段詳解:

  技術分享

  響應(Response)部分字段詳解:

  技術分享

  3.autoresponse頁簽:此功能啟用後可將某一項請求的響應結果替換成指定的資源(本地文件或者fiddler內置的各種http響應),主要用於臨時攔截某一請求的響應,而無需修改服務器上的環境和代碼,保證在最真實的環境中調試,也無需在bug查找的時候就相關部門的配合

  啟用該功能,請將Enable automatic responses打勾

    Permit passthroughfor unmatched requests 表示允許未匹配到的請求正常響應。應該打勾才能讓其他的請求繼續;否則其他未匹配到的請求都會以 404狀態返回。

    頁簽中間是一個列表,顯示當前創建的匹配規則,左側是匹配的條件,右側是響應的結果。即:如果請求的地址包含左側的字符串,那麽就用右邊設定的資源來替換來自服務器的響應。用 +和 - 兩個按鍵可以調整當前選擇規則在列表中的位置。

     頁簽底部是一個規則編輯器,可以進行編輯當前用戶選擇的匹配規則、保存編輯、刪除此匹配規則等操作。

    技術分享

    

第一個 Combox 是匹配的條件,可以自行輸入字符串,也可以選擇 Fiddler 內置的三個正則(都是匹配圖片的,沒什麽用)。Fiddler 支持幾種匹配模式:

  1. String Literals —— 字符匹配

    這種模式將匹配指定的字符串,不存在大小寫敏感。範例:

    *
    通配符,匹配任何地址,如: http://www.example.com/Path1/query=example
    EXAMPLE
    匹配 http://www.example.com/Path1/query=example
    path1/
    匹配 http://www.example.com/Path1/query=example
    query
    匹配 http://www.example.com/Path1/q=Query
  2. Exact Match —— 精確匹配

    這種模式一 EXACT: 開頭,將嚴格匹配字符串,包括大小寫。範例:

    EXACT:http://www.example.com/path
    匹配 http://www.example.com/path
    不匹配 http://www.example.com/Path(大小寫不符)
    不匹配 http://www.example.com/path/q=Query(有多余字符串)
  3. Regular Expressions —— 正則表達式

    這種模式一 regex: 開頭,使用正則表達式來匹配 session 的 URL。範例:

    regex:.*
    通配符,匹配任何地址,如 http://www.example.com/Path1/query=example

    regex:.*\.jpg —— 匹配包含 .JPG 的 URL
    匹配 http://www.example.com/Path1/query=foo.jpg&bar
    匹配 http://www.example.com/Path1/query=example.jpg

    regex:.*\.jpg$ —— 匹配 .jpg 結束的 URL
    不匹配 http://www.example.com/Path1/query=foo.jpg&bar(不是 .jpg 結尾)
    匹配 http://www.example.com/Path1/query=example.jpg

    regex:.*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 結束的 URL
    不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 結尾)
    匹配 http://www.example.com/Path1/query=example.gif
    不匹配 http://www.example.com/Path1/query=example.Gif (是 .gif 結尾,但大小寫不匹配)
    匹配 http://www.example.com/Path1/query=example.bmp

    regex:(?insx).*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 結束的 URL,忽略大小寫
    不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 結尾)
    匹配 http://www.example.com/Path1/query=example.gif
    匹配 http://www.example.com/Path1/query=example.Gif
    匹配 http://www.example.com/Path1/query=example.bmp

最後一個正則中的 ?insx 是正則表達式的語法,其中各字母的含義如下(詳見:正則表達式選項):

  • i —— 指定不區分大小寫的匹配
  • m —— 指定多行模式。更改 ^ 和 $ 的含義,以使它們分別與任何行的開頭和結尾匹配,而不只是與整個字符串的開頭和結尾匹配。
  • n —— 指定唯一有效的捕獲是顯式命名或編號的 (?<name>…) 形式的組。這允許圓括號充當非捕獲組,從而避免了由 (?:…) 導致的語法上的笨拙。
  • s —— 指定單行模式。更改句點字符 (.) 的含義,以使它與每個字符(而不是除 \n 之外的所有字符)匹配。
  • x —— 指定從模式中排除非轉義空白並啟用數字符號 (#) 後面的註釋。(有關轉義空白字符的列表,請參見字符轉義。)請註意,空白永遠不會從字符類中消除。

第二個 Combox 是響應的結果,可以選擇:Fiddler 內置的 HTTP 200/204/302/303/304/307/401/403/404/407/502 等各種響應範例、*bpu 和 *bpafter( 表示在此中斷,關於 bpu 和 bpfater 見 QuickExec 命令參考)、本地文件 (Find a file...)。

Save 按鈕是保存對此匹配規則的修改,Remove 按鈕是刪除此匹配規則。

增加匹配規則

1.點擊 Add... 按鈕,新增一條規則。

此時會激活頁簽底部的 Rule Editor。如果你在 Web Sessions 面板裏選擇了一個 Session,則匹配規則是該 Session 的 URL,否則是 StringtoMatch[數字]。然後可以使用 Rule Editor 編輯它。

2.點擊 Import... 按鈕,導入在 Web Sessions 中保存下來的壓縮包 (*.saz)。

3.在 Web Sessions 面板中選擇你要捕獲的請求,直接拖拽到 AutoResponder 的列表中

  四) composer頁簽:可模擬向服務器發送數據的過程(這就是灌水機器人的原理,也是部分http flood的一種方式),也可粘貼一次raw

  http header達到模擬請求的目的:

  技術分享

  五) filter頁簽:過濾器功能,可分別對host過濾,客戶端進程過濾,斷點設置規則,請求和響應過濾等

    技術分享

    HOST-hosts過濾規則:

      技術分享

        你可以在文本框中輸入多個 HOST,多個之前用半角逗號或者回車分隔。

        1\- No Host Filter - —— 無 HOST 過濾

        2\Hide the following Hosts —— 隱藏如下 HOST

        3\Show only the following Hosts —— 只顯示如下 HOST

        4\Flag the following Hosts —— 加粗顯示如下 HOST

    Client Process —— 客戶端進程過濾規則:

      技術分享

        1、Show only traffic from —— 你可以指定只捕獲哪個 Windows 進程中的請求,右側會列出當前所有的 Windows 進程

        2、Show only Internet Explorer traffic —— 只顯示 IE 發出的請求

        3、Hide Windows RSS platform traffic —— 隱藏 Windows RSS 平臺發出的請求

    Breakpoints —— 斷點設置規則:

        1、Break request on HTTP POST —— 給所有 POST 請求設置斷點

        2、Break request on HTTP GET with QueryString —— 給所有帶參數的 GET 請求設置斷點

        3、Break response on Content-Type —— 給特定的 Content-Type 設定斷點

    Response Status Code —— 響應 HTTP 狀態過濾規則:

        1、Hide success(202,204,206) —— 隱藏響應成功的 session (202,204,206)

        2、Hide Authentication demands(401) —— 隱藏未經授權被拒絕的 session (401)

        3、Hide redirects(300,301,302,303,307) —— 隱藏重定向的 session (300,301,302,303,307)

        4、Hide Not Modified(304) —— 隱藏無變更的 session (304)

    Response Type and Size —— 響應類型和大小過濾規則:

      技術分享

        1、設定響應類型過濾規則

          Show all Content-Types —— 顯示所有響應類型

          Show only IMAGE/* —— 只顯示圖片

          Show only HTML —— 只顯示 HTML

          Show only TEXT/CSS —— 只顯示 CSS

          Show only SCRIPTS —— 只顯示腳本

          Hide IMAGE/* —— 隱藏所有圖片

        2、Ignore smaller than ? KB —— 忽略小於指定大小的 session

        3、Ignore larger than ? KB —— 忽略大於指定大小的 session

        4、Block script files —— 阻止腳本文件,顯示為 404

        5、Block image files —— 阻止圖片文件

        6、Block SWF files —— 阻止 SWF 文件

        7、Block CSS files —— 阻止 CSS 文件

    Request Headers —— 請求 header 過濾規則:

        1、Flag requests with header —— 標記帶有特定 header 的請求

        2、Delete request header —— 刪除請求 header

        3、Set request header —— 設置請求的 header

    Response Headers —— 響應 header 過濾規則

        1、Flag responses that set cookies —— 標記會設置 cookie 的響應

        2、Flag responses with header —— 標記帶有特定 header 的響應

        3、Delete responses header —— 刪除響應 header

        4、Set responses header —— 設置響應的 header

  6 Timeline 頁簽:顯示session請求到響應的時間表,橫向為時間軸,縱向為session列表,鼠標移到timeline頁簽上,在底部會顯示四個數據:session編號和URL、session的響應類型、發送字節數和接收字節數

    技術分享

Fidder教程