1. 程式人生 > >Fiddler抓包打斷點(bpu)

Fiddler抓包打斷點(bpu)

前言

先給大家講一則小故事,在我們很小的時候是沒有手機的,那時候跟女神聊天都靠小紙條。某屌絲A男對隔壁小王的隔壁女神C傾慕已久,於是天天小紙條騷擾,無奈中間隔著一個小王,這樣小王就負責傳小紙條了。有一天小王忍不住偷偷開啟A男表白的紙條,把裡面內容改了下,改成了:我的同桌小王喜歡你。最後女神C和小王走在了一起。。。這是一個悲傷的故事!

一、斷點

1.為什麼要打斷點呢?

比如一個購買的金額輸入框,輸入框前端做了限制100-1000,那麼我們測試的時候,需要測試小於100的情況下。很顯然前端只能輸入大於100的。這是我們可以先抓到介面,修改請求引數,繞過前端,傳一個小於100的數,檢查服務端的功能是否OK。

也就是說介面測試其實是不需要管前端的,主要測後端的功能。Fiddler作為代理伺服器的作用其實就相當於上面故事裡面的小王,傳紙條的作用,Fiddler(小王)修改了請求引數(小紙條),是為了驗證服務端功能(女神C)。

2.Fiddler可以修改以下請求

--Fiddler設定斷點,可以修改HTTP請求頭資訊,如修改Cookie,User-Agent等

--可以修改請求資料,突破錶單限制,提交任意數字,如充值最大100,可以修改成10000

--攔截響應資料,修改響應體,如修改服務端返回的頁面資料

二、斷點的兩種方式

1.before response:這個是打在request請求的時候,未到達伺服器之前

--屌絲A傳給小王的時候,小王在這個時候攔截了小紙條,未傳給女神C

 

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

--女神C回了小紙條,小王拿到後攔截了,未傳給屌絲A

 

三、全域性斷點

1.全域性斷點就是中斷fiddler捕獲的所有請求,先設定下,點選rules-> automatic breakpoint  ->before requests

 

2.選中before requests選項後,開啟部落格園首頁:http://blog.csdn.net/weixin_39142498,看到如下T的標識,說明斷點成功

 

3.打完斷點後,會發現所有的請求都無法發出去了,這時候,點下Go按鈕,就能走下一步了

 

4.找到需要修改的請求後,選中該條會話,右側開啟WebFroms,這時候裡面的引數都是可以修改的了

 

5.修改之後點Run to Completion就能提交了,於是就成功修改了請求引數了

6.打全域性斷點的話,是無法正常上網的,需要清除斷點:rules-> automatic breakpoint  ->disabled

四、單個斷點

已經知道了某個介面的請求地址,這時候只需要針對這一條請求打斷點除錯,在命令列中輸入指令就可以了

請求前斷點(before response): bpu

1. 論壇登入介面:https://passport.cnblogs.com/user/signin

2. 命令列輸入:bpu https://passport.cnblogs.com/user/signin 回車

 

3.請求登入介面的時候,就會只攔截登入這個介面了,此時可以修改任意請求引數

4.取消斷點,在命令列輸入: bpu 回車就可以了

響應後斷點(after  requests): bpafter

1. 論壇登入介面:https://passport.cnblogs.com/user/signin

2. 在命令列輸入:bpafter https://passport.cnblogs.com/user/signin  回車

3.登入部落格園,會發現已經攔截到登入後伺服器返回的資料了,此時可以修改任意返回資料

4.取消斷點,在命令列輸入: bpafter 回車就可以了


五、攔截來自某個網站所有請求

1.在命令列輸入:bpu www.cnblogs.com

2.開啟部落格園任意網頁,發現都被攔截到了

3.開啟部落格園其他網站,其它網站可以正常請求

4.說明只攔截了來自部落論壇(www.cnblogs.com)的請求

5.清除輸入bpu回車即可


 六、命令列其它相關指令

Bpafter, Bps, bpv, bpm, bpu

這幾個命令主要用於批量設定斷點

Bpafter xxx: 中斷  URL  包含指定字元的全部  session  響應
 
Bps xxx: 中斷 HTTP 響應狀態為指定字元的全部 session 響應

Bpv xxx: 中斷指定請求方式的全部  session  響應

Bpm xxx: 中斷指定請求方式的全部  session  響應 、、同於 bpv xxx

Bpu xxx:與bpafter類似

當這些命令沒有加引數時,會清空所有設定了斷點的HTTP請求。