(一)工具欄詳細介紹
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
循環使用不同的顏色作為背景高亮顯示。