Fidder教程-資料介紹
Fidder教程
一.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 支援幾種匹配模式:
- 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 - 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(有多餘字串) - 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的響應型別、傳送位元組數和接收位元組數