天天看點

利用Fiddler攔截接口請求并篡改資料

利用Fiddler攔截接口請求并篡改資料

近期在測試一個下單的項目,出于安全角度考慮,測試了一個場景,那就是利用工具對接口進行攔截并篡改資料。将接口一攔截并篡改資料後,發現收貨滿滿。開發默默接受了我的建議,并對代碼進行了修改。

對于fiddler的操作,網上文章很多,該方法一查就很多,我還将此寫出來,是記錄下自己的實踐時刻。

攔截HTTP請求

使用Fiddler進行HTTP斷點調試是fiddler一強大和實用的工具之一。通過設定斷點,Fiddler可以做到:

①修改HTTP請求頭資訊。例如修改請求頭的UA,Cookie,Referer資訊,通過“僞造”相應資訊達到相應的目的(調試,模拟使用者真實請求等)。

②構造請求資料,突破表單的限制,随意送出資料。避免頁面js和表單限制影響相關調試。

③攔截響應資料,修改響應實體。

設定斷點共有兩種方式:

①fiddler菜單欄->rules->automatic Breakpoints->選擇斷點方式,這種方式下設定的斷點會對之後的所有HTTP請求有效。有兩個斷點位置:

1)before response。也就是發送請求之後,但是Fiddler代理中轉之前,這時可以修改請求的資料。

2)after response。也就是伺服器響應之後,但是在Fiddler将響應中轉給用戶端之前。這時可以修改響應的結果。

3)如何消除指令呢?點選Rules->Automatic Breakpoint->Disabled

如下圖所示:

利用Fiddler攔截接口請求并篡改資料

②指令行設定斷點

1)bpu在請求開始時中斷

2)bpafter在響應到達時中斷

3)bps中斷HTTP響應狀态為指定字元的全部session響應

4)bpv/bpm中斷指定請求方式的全部session響應

示例一:

指令行輸入:bpm www.baidu.cm(攔截www.baidu.com請求)

解除攔截:輸入指令:bpu

示意圖如下所示:

利用Fiddler攔截接口請求并篡改資料

示例二:

指令行輸入:bpuafter www.baidu.cm(攔截www.baidu.cm傳回值)

解除攔截:輸入指令:bpuafter

利用Fiddler攔截接口請求并篡改資料

結合實際操作,打開fiddler,去攔截送出訂單的那個接口,設定成:rules->automatic Breakpoints->before response,在頁面上送出訂單,攔截效果如下所示,頁面中一直在加載

利用Fiddler攔截接口請求并篡改資料

修改資料

攔截HTTP請求後修改方式有兩種,一種是臨時修改,即結果隻對當次請求有效,另一種是永久修改,可以通過urlreplace指令實作。

①臨時修改請求

即在fiddler中執行Inspectors->WebForms,修改請求變量參數後執行Run to Completion,伺服器傳回新的請求結果

②永久性修改請求

1)指令行設定修改規則,修改請求:urlreplace 舊請求值 新請求值

fiddler指令行輸入:urlreplace uuid=103 uuid=105

其中uuid是請求參數,輸入指令後回車即可,新的請求設定成功,除非釋放請求,否則請求值不變,釋放請求指令urlreplace

2)腳本中修改規則,打開腳本方式:fiddler執行Rules->Customize Rules

在fiddler中修改訂單資料後,點選Run to Completion按鈕,實作資料篡改,頁面中的資料修改成功,這裡就不上圖了,嘿嘿

繼續閱讀