一、內(nèi)置命令
1、Fiddler 將每個(gè) HTTP 請(qǐng)求都作為一個(gè)會(huì)話(session)保留,你可以在黑框中輸入 Fiddler 的內(nèi)置命令來輕松地管理這些會(huì)話。
a、通過快捷鍵alt+q可以快速定位到內(nèi)置命令輸入框。b、當(dāng)焦點(diǎn)在命令輸入框中時(shí),快捷鍵Ctrl + i 可以快速插入當(dāng)前選中會(huì)話的 URL
2、內(nèi)置命令介紹
a、?? ? ?:問號(hào)(?)后邊跟一個(gè)字符串,F(xiàn)iddler 將所有會(huì)話中存在該字符串匹配的全部高亮顯示
b、>和<? ? ?:大于號(hào)(>)和小于號(hào)(<)后邊跟一個(gè)數(shù)值,表示高亮所有尺寸大于或小于該數(shù)值的會(huì)話。
c、=? ? ? ?:等于號(hào)(=)后邊可以接 HTTP 狀態(tài)碼或 HTTP 方法,比如 =200 表示高亮所有正常響應(yīng)的會(huì)話。=post表示所有post請(qǐng)求
d、@? ? ?:@ 后邊跟的是 Host,比如 @www.baidu.com
3、設(shè)置斷點(diǎn)相關(guān)命令(bpafter、bps、bpv、bpm 和 bpu)
a、bpafter:? ? ??bpafter 后邊跟一個(gè)字符串,表示中斷所有包含該字符串的會(huì)話。
b、bps? ? ?:? ? ??bps 后邊跟的是 HTTP 狀態(tài)碼,表示中斷所有為該狀態(tài)碼的會(huì)話。
c、bpv 或 bpm :??bpv 或 bpm 后邊跟的是 HTTP 方法,表示中斷所有為該方法的會(huì)話。
d、bpu? ? :? ? ??跟bpafter 類似,區(qū)別:bpu 是在發(fā)起請(qǐng)求時(shí)中斷,而 bpafter 是在收到響應(yīng)后中斷。
4、其他命令
a、cls或clear? :清楚當(dāng)前所有會(huì)話
b、dump:??將所有的會(huì)話打包成.zip 壓縮包的形式保存到 C 盤根目錄下。
c、g或go? :放行所有中斷下來的會(huì)話。
d、hide? :將fiddler隱藏;show:將fiddler恢復(fù)
e、urlreplace 后邊跟兩個(gè)字符串,表示替換 URL 中的字符串。比如 urlreplace baidu fishc 表示將所有 URL 的 baidu 替換成 fishc。
f、start:fiddler開始工作;stop:fiddler停止工作;quit:關(guān)閉fiddler
g、select 后邊跟響應(yīng)的類型(Content-Type),表示選中所有匹配的會(huì)話。比如希望Fiddler 選中所有的圖片,可以使用 select image;
h、跟select 類似,不過 allbut 和 keeponly 會(huì)將所有無關(guān)的會(huì)話刪除。
i、!dns:后邊跟一個(gè)域名,執(zhí)行DNS 查找并在右邊的 LOG 欄打印結(jié)果
j、!listen:?設(shè)置其他監(jiān)聽的端口,默認(rèn)是8888
二、斷點(diǎn)
1、為什么要打斷點(diǎn)
比如一個(gè)輸入框,輸入框前端做了限制100-1000,那么我們測(cè)試的時(shí)候,需要測(cè)試小于100的情況下。很顯然前端只能輸入大于100的。這是我們可以先抓到接口,修改請(qǐng)求參數(shù),繞過前端,傳一個(gè)小于100的數(shù),檢查服務(wù)端的功能是否OK。也就是說接口測(cè)試其實(shí)是不需要管前端的,主要測(cè)后端的功能。
2、打斷點(diǎn)可篡改的請(qǐng)求類型
? ? ?1)、--Fiddler設(shè)置斷點(diǎn),可以修改HTTP請(qǐng)求頭信息,如修改Cookie,User-Agent等
? ? ? 2)、--可以修改請(qǐng)求數(shù)據(jù),突破表單限制,檢查接口的處理情況,這種適用于不方便直接調(diào)接口,其不關(guān)心頁面,只看接口處理是否正常,返回的數(shù)據(jù)對(duì)不對(duì)。(繞過前端)
? ? ? ? ? ? ? ? ?比如:注冊(cè)頁面 用戶名限制的字符長度是2-20 ,把字符加到21以上,看效果,根據(jù)前端頁面的預(yù)期結(jié)果是提示用戶名超長了,而實(shí)際結(jié)果是注冊(cè)成功了。于是去數(shù)據(jù)庫查了下表結(jié)構(gòu),發(fā)現(xiàn)用戶名字段的長度是50,所以重新注冊(cè)下,字符超過50,看接口返回的信息,提示“信息輸入有誤”,OK,測(cè)試通過,說明接口在這塊做了保護(hù)。
? ? ?3)、--攔截響應(yīng)數(shù)據(jù),修改響應(yīng)體,如修改服務(wù)端返回的頁面數(shù)據(jù)(關(guān)心頁面處理情況)
? ? ? ? ? ? ? ? ?比如:頁面顯示一個(gè)數(shù)字,我們想要測(cè)試數(shù)字的長度,此時(shí)可以通過篡改數(shù)據(jù)使服務(wù)端返回不同的結(jié)果來看頁面顯示是否正常,修改頁面響應(yīng)結(jié)果(攔截響應(yīng)數(shù)據(jù),修改響應(yīng)實(shí)體)
3、斷點(diǎn)的兩種方式(圖示)
? ? ?1)、before?response:這個(gè)是打在request請(qǐng)求的時(shí)候,未到達(dá)服務(wù)器之前
? ? ?2)、after?response:也就是服務(wù)器響應(yīng)之后,在Fiddler將響應(yīng)傳回給客戶端之前。
4、全局?jǐn)帱c(diǎn)與單個(gè)斷點(diǎn)
?1)、全局?jǐn)帱c(diǎn):中斷fiddler捕獲的所有請(qǐng)求,a、先設(shè)置下,點(diǎn)擊rules-> automatic breakpoint? ->before requests
b、選中before requests選項(xiàng)后,打開頁面:https://www.cnblogs.com/wuhuacong/,看到如下T的標(biāo)識(shí),說明斷點(diǎn)成功
c、打斷點(diǎn)后,請(qǐng)求都發(fā)不出去,點(diǎn)擊run to completion? 就可以繼續(xù)請(qǐng)求了
d、找到需要修改的接口,在webforms中就可以修改請(qǐng)求參數(shù),修改之后點(diǎn)Run to Completion就能提交了,于是就成功修改了請(qǐng)求參數(shù)了
e、全局?jǐn)帱c(diǎn)后,需要清除斷點(diǎn):rules-> automatic breakpoint? ->disabled
2)、單個(gè)斷點(diǎn)
已經(jīng)知道了某個(gè)接口的地址,只需要針對(duì)這一條請(qǐng)求打斷點(diǎn)就可以
a、請(qǐng)求前斷點(diǎn)(before?response):?bpu
命令行輸入:bpu https://www.cnblogs.com/wuhuacong/ 回車
取消斷點(diǎn),在命令行輸入:?bpu?回車就可以了
b、響應(yīng)后斷點(diǎn)(after? requests):?bpafter
在命令行輸入:bpafter https://passport.cnblogs.com/user/signin?回車
取消斷點(diǎn),在命令行輸入:?bpafter?回車就可以了
5、實(shí)例
實(shí)例一:淘寶搜索,修改請(qǐng)求參數(shù),著重服務(wù)器的處理(轉(zhuǎn)載https://www.cnblogs.com/hushaojun/p/5644645.html)
a、在Fiddler命令行輸入?yún)^(qū)輸入“bpu”回車執(zhí)行清掉原有的斷點(diǎn),然后輸入“bpu m.taobao.com”回車執(zhí)行,接下來就會(huì)中斷URL中包含此地址的請(qǐng)求。
b、在瀏覽器淘寶首頁頂端搜索框輸入“娃娃”后點(diǎn)擊搜索,此時(shí)請(qǐng)求被中斷,在Fiddler會(huì)話列表面板看到以紅色T圖標(biāo)開頭被中斷的會(huì)話
c、點(diǎn)擊會(huì)話列表中被中斷的會(huì)話,依次進(jìn)入Inspectors-->WebForms。此時(shí)請(qǐng)求并未發(fā)出,q參數(shù)即為查詢關(guān)鍵字,我們修改為“nike”,然后點(diǎn)擊“Break on Response”按鈕。注:在這里實(shí)現(xiàn)修改了請(qǐng)求數(shù)據(jù),其它的post數(shù)據(jù),甚至是headers里的cookie、referer、user-agent等都可以修改。
d、修改完成后將請(qǐng)求繼續(xù)發(fā)送,搜索內(nèi)容已被更改
注:更多內(nèi)容可參考上文鏈接
實(shí)例二:修改返回值數(shù)據(jù),著重關(guān)心的是頁面的處理
a、設(shè)置:Rules->Automatic Breakpoints->選擇After Responses
b、請(qǐng)求需要修改的接口
c、在textview中修改返回值中的數(shù)據(jù)
d、點(diǎn)擊run to completion 按鈕,繼續(xù)請(qǐng)求接口,查看返回值數(shù)據(jù)已修改