利用Fiddler攔截接口請求並篡改數據


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

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

攔截HTTP請求

使用Fiddler進行HTTP斷點調試是fiddler一強大和實用的工具之一。通過設置斷點,Fiddler可以做到:
①修改HTTP請求頭信息。例如修改請求頭的UA,Cookie,Referer信息,通過“偽造”相應信息達到相應的目的(調試,模擬用戶真實請求等)。
②構造請求數據,突破表單的限制,隨意提交數據。避免頁面js和表單限制影響相關調試。
③攔截響應數據,修改響應實體。
 
設置斷點共有兩種方式:
①fiddler菜單欄->rules->automatic Breakpoints->選擇斷點方式,這種方式下設定的斷點會對之后的所有HTTP請求有效。有兩個斷點位置:
1)before request。也就是發送請求之前,Fiddler代理中轉之前,這時可以修改請求的數據。
2)after response。也就是服務器響應之后,但是在Fiddler將響應中轉給客戶端之前。這時可以修改響應的結果。
3)如何消除命令呢?點擊Rules->Automatic Breakpoint->Disabled
如下圖所示:

 

②命令行設置斷點
1)bpu在請求開始時中斷
2)bpafter在響應到達時中斷
3)bps中斷HTTP響應狀態為指定字符的全部session響應
4)bpv/bpm中斷指定請求方式的全部session響應
 
示例一:
命令行輸入:bpm www.baidu.cm(攔截www.baidu.com請求)
解除攔截:輸入命令:bpu
示意圖如下所示:
 
示例二:
命令行輸入:bpuafter www.baidu.cm(攔截www.baidu.cm返回值)
解除攔截:輸入命令:bpuafter
示意圖如下所示:

 

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

修改數據

攔截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按鈕,實現數據篡改,頁面中的數據修改成功,這里就不上圖了,嘿嘿


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM