通過上一篇文章Fiddler移動端抓包,我們知道了Fiddler抓包原理以及怎樣進行移動端抓包,接下來介紹Fiddler中常用的功能。
Fiddler中常用的功能如下:
- 停止抓包
- 清空會話窗內容
- 過濾請求
- 解碼
- 設定斷點
一. 停止抓包
二. 清空會話窗
方法一,工具欄工具:
方法二,命令列形式:
當然,命令列工具也還支援其他命令的輸入,這裡不做過多說明。
三. 過濾請求
開啟Fiddler抓包時,會話視窗會顯示很多的請求,但我們只需要抓取到目標請求資料,這時就可以設定過濾。
過濾可以分為兩種方式:只顯示目標請求,只抓取目標端的請求。區別在於,前者是抓取所有請求但只顯示目標請求數目,後者是隻抓取某個端的請求資料。
只顯示目標請求
操作步驟如下:
如介面右側下方所示,還可以勾選更多的條件進行過濾展示,這裡不做過多說明,有興趣的可以自行嘗試。
只抓取目標端的請求
例如,我們只想對移動端抓包時,我們可以設定只抓取移動端的請求,進行如下設定:
四. 解碼
在抓取某些請求的時候,會發現返回的內容中出現了亂碼,如下圖所示
這是HTML被壓縮了的原因, 我們可以通過一下兩種方式去解壓縮。
方法一,點選Responsebody is encoded.Click to decode.
,如下:
方法二,先選中工具欄中的Decode
,再請求抓包,這樣顯示的請求結果便是解碼後的結果。如下:
解碼後結果如下圖所示:
五. 設定斷點
有時進行除錯時,我們需要偽造客戶端請求和伺服器響應,那麼這個時候就需要設定斷點。
偽造客戶端請求
偽造客戶端請求,即在客戶端點選請求後、正式向伺服器傳送請求之前,修改原來的請求引數再傳送請求,這需要設定斷點為Before Requests
,步驟說明如下:
-
通過選單選項或快捷鍵F11進行設定,如下圖步驟,點選選擇
Before Requests
經過第一步的設定,我們再次去抓包,會發現在左側會話視窗中,所有請求都標記成了中斷,請求未傳送成功而是被Fiddler中斷了,且此時客戶端可以看到資料載入異常。
會話視窗中找到對應的請求,點選選擇,右側選擇
Inspectors
,會顯示一行操作欄,點選Run to Completion
便可繼續傳送被中斷的請求。但我們的目的是斷點後修改請求資料再傳送請求。
-
找到對應的請求,修改請求資料
以登入Testerhome為例,先將設定斷點為
Before Requests
,在瀏覽器中輸入正確的賬號和密碼,點選登入,然後在Fiddler中找到該請求,將密碼清空,再點選Run to Completion
繼續傳送請求,伺服器會返回什麼樣的結果,下面我們來驗證。可以看到,瀏覽器輸入正確的賬號密碼應該是要登入成功的,但我們通過Fiddler打斷點後,對該登入介面的請求引數做了修改之後再請求,返回錯誤:賬號或密碼錯誤,請重試。
偽造伺服器響應
偽造伺服器響應,即在響應返回給客戶端之前,將響應內容修改再返回,這需要設定斷點為After Responses
。接下來還是以TestHome網站登入介面為例,修改它的響應內容。步驟如下:
-
先將斷點規則設定為
After Responses
,如下: -
正常登入後會跳轉至TesterHome網站首頁,但此時我們可以修改返回引數,讓其登入後跳轉至百度頁面,設定如下:
如上圖所示,將圖中返回引數改成百度地址 (TextView形式下可對返回引數進行修改),再點選
Run to Completion
,我們會看到登入成功後跳轉到了百度頁面,而不是TestHome首頁。
注意事項
設定斷點的功能應有如下注意:
-
Inspectors
中,在請求引數顯示視窗WebForms
中可以修改請求引數,在響應引數顯示視窗TextView
中可以修改返回引數。 -
通過選單選項或快捷鍵F11進行斷點設定,是全域性有效的,即會對所有的HTTP請求都打上斷點
-
如果只需要對某個伺服器發出的請求設定斷點,可使用Fiddler的命令列工具輸入命令,
Before Requests
命令為bpu 伺服器地址
,After Response
命令為bpafter 伺服器地址
,如下圖所示: -
設定斷點後,需要取消斷點設定,需要將斷點設定成
Disabled
,操作如下: -
也可使用快捷工具進行斷點設定,如下圖所示位置,點選切換即可:
六. 總結
Fiddler除了以上介紹的功能外,還有其他功能,如:
-
限制網速,用於模擬弱網測試
-
簡單的介面測試
-
mock
-
結合第三方外掛實現更多功能