『言善信』Fiddler工具 — 13、Fiddler斷點功能的使用詳解

繁華似錦Fighting發表於2021-06-16

1、Fiddler斷點的應用

通過設定斷點,Fiddler可以做到:

  1. 修改HTTP請求頭資訊。
    例如:修改請求頭的User-AgentCookieReferer等資訊,通過“偽造”相應資訊達到相應的目的(除錯,模擬使用者真實請求等)。
  2. 構造請求資料,突破錶單的限制,進行提交資料,避免頁面js和表單限制影響相關除錯。
  3. 攔截響應資料,修改響應實體。
    例如:進行極端測試,刪除返回的所有資料,檢視頁面的展示效果。
  4. 斷點可以模擬網路中斷。

2、斷點的分類

斷點分為兩種:

(1)before response:這個是打在Request請求的時候,未到達伺服器之前。

image

(2)after response:就是伺服器響應之後,在Fiddler將響應傳回給客戶端之前。

image

3、設定全域性斷點

全域性斷點就是中斷Fiddler捕獲的所有請求。

(1)設定before Requests全域性斷點:

1)配置

點選Rules —> Automatic Breakpoint —> Before Requests

如下圖:

image

可以使用快捷鍵F11進行設定。

配置完成後,在狀態列中可以看到如下圖示:

image

2)使用

例如:我們設定了before Requests全域性斷點,現在訪問一個登陸網頁,如下:

http://test.lemonban.com/ningmengban/app/login/login.html

情況1:

填寫使用者名稱=123456123456,密碼=123456,併傳送請求。

會顯示:手機號碼格式不正確。

image

檢視Fiddler後,發現並沒有錄製到任何請求,說明手機號被前端js進行校驗了。

這時我們就需要繞過前端js對手機號的校驗,開始執行情況2。

情況2:

填寫使用者名稱=18888888888,密碼=123456,併傳送請求。

發現Fiddler錄製了一條請求,但是這條請求和我們之前看到的請求狀態有所區別,是因為打了全域性的before Requests斷點,所有要發出去的請求都被Fiddler攔截了。

如下圖:

image

我們在請求報文中把手機號修改成123456123456,一個12位的數字。

image

然後可以繼續執行該條登陸請求。

  • 方式一:點選工具欄中的Go按鈕即可。
  • 方式二:點選Run to Completion來完成請求。
    設定斷點後,在Inspectors介面中會增加一行操作欄。如上圖所示:
    • Break on Response:可以繼續在響應資料返回客戶端前加斷點。
    • Run to completion:按照更改引數後繼續提交請求。
    • Choose Response...:是一個下拉選單,裡面有各種返回的HTTP響應,可以選擇特定的響應返回,也可以按照自己自定義的特定檔案來返回資料。

請求完成之後我們可以檢視返回結果,如下圖:

image

可以從上圖中看出,我們輸入的12位數字,後臺並沒驗證出手機號碼格式不正確。也就是說,我們繞過前端的驗證,直接訪問了服務端的介面。

由此可見,我們的斷點已經設定成功,並且成功修改了HTTP的請求資料。

(2)設定After Responses全域性斷點:

1)配置

點選Rules —> Automatic Breakpoint —> After Responses

如下圖:

image

可以使用快捷鍵Alt+F11進行設定。

配置完成後,在狀態列中可以看到如下圖示:

image

2)使用

例如:我們設定了After Responses全域性斷點,現在訪問一個登陸網頁,如下:

http://test.lemonban.com/ningmengban/app/login/login.html

填寫使用者名稱=18888888888,密碼=123456,併傳送請求。

發現Fiddler錄製了一條請求,如下圖:

image

我們把返回資料的message資訊改成“登陸成功”,然後點選Run to Completion繼續完成請求。

image

請求完成之後,我們進入到Inspectors介面中,檢視請求的實際返回資料。

image

如上圖所示,說明請求返回資料的內容,被我們成功修改了。

4、設定區域性斷點

當我們已經知道了某個介面的請求地址,而且只需要針對這一條請求進行斷點除錯,這時就可以設定區域性斷點了。

(1)設定before Requests區域性斷點:

在命令列中輸入指令: bpu login

image

這個RequestURI breakpoint for login就表示所有URL中有login的請求都會被攔截。

說明我們的before Requests區域性斷點就設定完成了。

說明:bpu命令後可以加完整的URL路徑,也可以加區域性的URL路徑,URL路徑越完整,攔截越精確。

繼續訪問http://test.lemonban.com/ningmengban/app/login/login.html

填寫使用者名稱=18888888888,密碼=123456,併傳送請求。

可以看到URL中包含login的請求被攔截了。

image

之後的操作和上面全域性斷點的操作一樣,這裡就不演示了。

最後取消設定的before Requests區域性斷點,就是在命名行直接輸入bpu回車即可,後面不用加任何內容。

之後狀態列顯示RequestURI breakpoint deared,即斷點被解除。

(2)設定After Responses區域性斷點:

在命令列中輸入指令: bpafter login

image

這個ResponseURI breakpoint for login就表示所有URL中有login的響應都會被攔截。

說明我們的After Responses區域性斷點就設定完成了。

說明:bpu命令後可以加完整的URL路徑,也可以加區域性的URL路徑,URL路徑越完整,攔截越精確。

繼續訪問http://test.lemonban.com/ningmengban/app/login/login.html

填寫使用者名稱=18888888888,密碼=123456,併傳送請求。

可以看到URL中包含login的響應被攔截了。

image

之後的操作和上面全域性斷點的操作一樣,這裡就不演示了。

最後取消設定的After Responses區域性斷點,就是在命名行直接輸入bpafter回車即可,後面不用加任何內容。

之後狀態列顯示ResponseURI breakpoint deared,即斷點被解除。

相關文章