(一)工具欄詳細介紹
Fiddler工具欄就是平時比較常用功能的一個快捷方式。
如下圖所示:
下面對每個工具進行詳解的介紹。
1、第一組工具:
如下圖所示:
WinConfig
:可以在裡面配置一些windows系統的應用程式,配置在裡面的應用的請求Fiddler都可以抓到,Fiddler5新增功能。
換句話說:就是有些應用Fiddler預設是抓不到包的,需要WinConfig新增配置一下,就能抓到了。- 一個訊息的圖示:點選該按鈕可以為所有選定的session新增comment(對會話進行備註)。
Replay
:向伺服器重新傳送該請求。(重放)- 叉子
Remove
:從web sessions
中刪除sessions的選單(刪除會話)。 Go
:恢復執行在request或response斷點處暫停的所有sessions。(在打斷點的時候使用)
2、第二組工具:
如下圖所示:
Stream
:開啟stream開關,取消所有沒有設定中斷的相應的快取。即:點選為流模式,不點選為緩衝模式。- 緩衝模式:伺服器把所有內容全部返回到Fiddler之後,Fiddler在一次性傳送到客戶端。可以控制響應,修改響應資料,但是時序圖有時候會出現異常。(這樣就支援斷點功能,偽造請求,偽造響應等)
Fiddler預設的模式為緩衝模式。
在緩衝模式下,可以進行Fiddler的其他功能,比如支援斷點功能,偽造請求,偽造響應等。 - 流模式:Fiddler會把收到內容立即傳送給客戶端。更接近真實瀏覽器的效能,速度快,時序圖更準確(比如瀑布圖),但是不能控制響應。
換句話說,與瀏覽器實際請求的模式一致,伺服器響應什麼資料,立即返回前端。
如果不需要AutoResponse
和Fileters
功能的話,一般使用緩衝模式.
- 緩衝模式:伺服器把所有內容全部返回到Fiddler之後,Fiddler在一次性傳送到客戶端。可以控制響應,修改響應資料,但是時序圖有時候會出現異常。(這樣就支援斷點功能,偽造請求,偽造響應等)
Decode
:開啟decode,會對所有會話請求進行解碼。(解碼操作,預設勾選)
或者點選Response body is encoded. Click to decode.
進行單個會話請求的解碼。
Keep: All sessions
:在下拉選項框中選擇在web sessions(左側會話列表)
列表中儲存多少個sessions。
如果機器效能比較低的話,可以選擇少儲存一些會話,因為儲存會話是需要佔用記憶體的,但一般不做修改。Any Process/pick target...
:任何你要監聽的程式(程式),精準定位。
當點選上面的Any Process
圖示並將其移動到指定瀏覽器頁面(或者其他程式介面)後,會單獨記錄這個頁面的通訊情況。
只能監聽一個程式,在點選一次把心圖示,則取消監聽。
注意:記錄Fiddler訪問過程中發生的主要事件的日誌,每當更新一次頁面時,eventlog會自動重新整理一次。。Find
:開啟Fiddler Sessions
視窗,進行相關查詢。Save
:把會話視窗中所有的sessions儲存到.saz
格式的檔案中。
把該檔案傳送給相關人員即可,他們開啟後Fiddler的狀態和你儲存時候的Fiddler狀態一樣。
3、第三組工具:
如下圖所示:
- 小相機:把當前的桌面的螢幕截圖以
jpeg
的格式,新增到web sessions
列表中。(截圖)
點選後會倒數5秒進行桌面截圖,可以把截圖好的圖片作為資料進行資料傳送。(並沒什麼用,用的很少) - 小秒錶:簡單的計時功能。
點選一下開始計時,在點選一下停止計時。 Browse
:快捷的開啟一個瀏覽器
如果選中了一個session,在瀏覽器中開啟該URL。
如果沒有選中任何sessions,會在IE瀏覽器中開啟aboutblank
。Clear Cache
:清空WinINET的快取檔案,即:清除瀏覽器快取功能。TextWizard
:開啟文字編碼/解碼小工具。
支援編碼和解碼,比如base64,urlencode,urldecode,md5等。例如模擬get請求,可以將請求引數轉為urlencode盡情編碼。
4、第四組工具:
如下圖所示:
Tearoff
:分離皮膚。一般不會使用。
點選叉子關閉,即可復原視窗。MSDN Search
:在MSDN的web sessions
區域進行搜尋。
在微軟開發者社群的搜尋,一般都不會用。- 問號:開啟Fiddler的幫助視窗。
Online
:滑鼠放在上面,會顯示一些本機的線上資訊。如IP資訊。- 小紅叉:刪除工具欄
注意:如果要恢復工具欄,可以點選選單欄view —> show toolbar,進行恢復。
(二)工具欄使用說明
這裡舉例幾個例子,說明工具欄中的工具怎麼使用,沒有說明的工具,在上一點中介紹的很詳細了。
1、Fiddler修改代理埠:
在Fiddler點選Tools —> Options... —> Connections選項中
上圖說明:
Fiddler listens on port
:Fiddler監聽的埠是8888。Act as system proxy on startup
:Fiddler在啟動時充當系統代理。(如果你不想代理系統的代理,這一項可以取消勾選)
注意:
- Google瀏覽器和IE瀏覽器預設訪問的系統代理,Fiddler 就會自動代替。
- 而火狐瀏覽器需要自己手動配置。
- Fiddler監聽的埠是可以自定義配置的,1024到65535的埠都可以,只要不衝突即可。
2、過濾Tunnel to...443請求連結
當我們使用瀏覽器傳送請求的時候,例如訪問百度。
使用Fiddler進行抓取,如下結果:
可以看到有很多Tunnel to...443
,圖示是一把鎖形狀的連結。
這個是什麼原因呢?
- connect請求是為了建立
http tunnel
(通道),connect是HTTP請求方法中的其中一種,它和GET、POST、PUT、DELETE請求方法是並列的。 - 因為網路環境受限,客戶端無法直接訪問某些網路,所以只能通過代理伺服器訪問網路,然後將內容轉發給客戶端,從巨集觀上看客戶端與伺服器端就像建立了一條隧道一樣。
- 當使用https通訊時,客戶端使用
http connect
請求代理伺服器,代理伺服器使用connect方法與目標伺服器建立http tunnel
,通道建立後,客戶端與伺服器進行通訊,代理伺服器就像透明一樣,只是接收、轉發tcp stream
。 - Fiddler抓包出現大量
connect tunnel
連線
是因為Fiddler是一個代理服務,訪問百度網頁(使用了https協議),滿足了使用connect條件,所以客戶端會使用connect方法與目標伺服器建立http tunnel
,一旦connection建立完成,後續Fiddler會轉發、接收所有的tcp stream
。 - 對於
connect tunnel
連線,伺服器通常會進行限制,一般只開放SSL的443埠。
總結:可以理解成connect請求表示https的握手動作。也就是認證資訊,只要是https就要進行認證。只要不是滿篇的
Tunnel to….443
,就沒有任何問題。
如果我們對看到很多的Tunnel to...443
連結比較頭疼,或者不方便找到我們需要抓取的請求連結時,我們就可以把這些Tunnel to...443
請求連結全部過濾掉。
操作:選單欄Rules —> 勾選Hide CONNECTs
選項,即可。
提示:一般
Hide CONNECTs
和Hide 304
選項一起勾選。
3、給抓到的請求新增備註
當我們使用Fiddler抓取到一個請求後,可以選中該請求,點選工具欄中的如下圖示,即可給該請求新增備註。
新增備註和未新增備註的請求如下:
在實際的工作中,不一定非要每個請求都要新增備註。
但是請求新增備註後,當請求匯出檔案給其他人看的時候,別人能很快能識別你這個請求是用來幹什麼的。
4、Replay工具的使用
Replay
:重放工具,向伺服器重新傳送該請求。
使用方法很簡單,選用需要重新傳送的請求(一個或多個),點選Replay
工具按鈕即可。
每點選一次Replay
工具按鈕,就重傳送一次所選中的請求到伺服器。
把滑鼠懸停在Replay
工具上會出現一些提示,如下:
-
Reissue the selected requests.
:重新發出選定的請求。 -
Hold CTRL to reissue unconditionally
:按住CTRL可無條件重新發出。這裡翻譯的不準確,其實選中一個請求,直接點選r鍵即可重新傳送一次該請求。
-
Hold SHIFT to reissue multiple times.
:按住SHIFT鍵可重新發出多次。選中一個或者多個請求,按SHIFT + r 組合鍵,會彈出一個對話方塊,
輸入數字,就表示重新傳送多少次所選請求到伺服器。這樣的操作也就是模擬了一次"重放攻擊"的操作。
5、移除工具(黑叉子)
移除工具有很多選項在下拉選單中:
Remove all
:清除所有請求。Images
:清除圖片類請求。- Connects:清除中間連線請求。
Non-200s
:清除響應狀態非200的請求。Non-browser
:清除非瀏覽器請求。Complete&Unmarked
:清除已完成且未新增備註的請求。Duplicate response bodies
:清除重複響應bodies相同的請求。
擴充套件:刪除會話列表(web sessions)中的請求會話
(1)刪除所有選中的會話請求:
- 選中的會話上右鍵 —> Remove —> Selected Sessions。
- 或者直接按鍵盤上的Delete鍵即可。
(2)刪除選中外的所有會話請求:
- 選中的會話上右鍵 —> Remove —> Unselected Sessions
- 快捷鍵:Shift + Delete
(3)刪除會話視窗中的所有請求會話:
- 任意會話上右鍵 —> Remove —> All Sessions
- 快捷鍵:Ctrl + X
- 黑叉移除工具 —> Remove all
提示:瀏覽器去快取重新整理快捷鍵:Shift + F5。
6、查詢功能
查詢功能在工具欄中的Find
或者快捷鍵Ctrl + f
。
可以查詢包含指定內容的請求(可單獨指定請求過程或者響應過程,檢測header或body),預設以黃色高亮顯示。
Search
:搜尋範圍- Requests and responses:在請求和響應的所有資料中搜尋。
- Requests only:僅在請求中的資料進行搜尋。
- Responses only:僅在響應中的資料進行搜尋。
- URLs only:在URL中搜素。
Examine
:檢查,也是選擇搜尋範圍的- Headers and bodies:在Headers 和bodies中搜尋。
- Headers only:僅在Headers 中搜尋。
- Bodies only:僅在bodies中搜尋。
Match case
:大小寫敏感Regular Expression
:使用正規表示式Search binaries
:二進位制搜尋,如音訊,視訊,Flash物件等Decode compressed content
:解碼壓縮內容,返回的body是encoded的,將所有的Responses decode後進行搜尋,比較耗時。Search only selected sessions
:只搜尋選中的回話。選中多個Sessions會預設啟用選中。Select matches
:選擇匹配。選中符合條件的搜尋結果。Unmark old results
:取消標記舊的搜尋結果。Unmark old results
:當不勾選Unmark old results
時,每次搜尋的結果會在Unmark old results
迴圈使用不同的顏色作為背景高亮顯示。