Fiddler抓包入門

抓包使用場景:
1、用手機APP或瀏覽器訪問一個頁面,查看請求的結果是否正確,請求的參數是否正確
2、在不修改任何環(huán)境的情況下,修改返回的結果,即通常所說的mock
3、復雜場景:
比如,同一個域名下的請求,/img/xxx的資源發(fā)送到ServerA上,請求/api/xxx資源發(fā)送到ServerB上

閱讀目錄

1、Fiddler 的基本原理
2、為什么選擇Fiddler,而不是其他工具
3、通過爬蟲 與 Fiddler 的關系,明白為什么需要進行抓包
4、Fiddler設置HTTPS代理
5、使用QuickExec命令行(類似我們平常說的快捷鍵)
6、進行案例的分享

一、Fiddler 的基本原理

我們使用瀏覽器或者客戶端軟件都要與外界進行通信,就必然會有數據的發(fā)送和接收,有時候需要對這些傳遞的數據進行分析,因此需要截獲這些傳遞的數據。

其中對這些數據進行截獲、重發(fā)、編輯、轉存的過程叫做抓包

Fiddler 的基本原理.png

本地應用與服務器之間所有的Request 和Response都將經過Fiddler,由Fiddler進行轉發(fā),此時Fiddler以代理服務器的方式存在。

由于所有的網絡數據都會經過Fiddler,因此Fiddler能夠截獲這些數據,實現網絡數據的抓包,可以詳細地對HTTP請求進行分析,并模擬對應的HTTP請求。

二、為什么選擇Fiddler

1、本地化的工具,是一個使用本地 127.0.0.1:8888 的 HTTP 代理
(免費的web調試代理工具,支持任何瀏覽器、系統(tǒng)或平臺)

啟動Fiddler后,通過瀏覽器訪問:http://127.0.0.1:8888

瀏覽器訪問.png

(1)任何能夠設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序都可以使用 Fiddler
(2)工具打開后,就自動設置了IE瀏覽器的代理,工具關閉后,IE的設置也將被還原

代理設置.png

2、Fiddler本身對http協(xié)議支持較好,且操作簡單容易上手
3、具有抓包和分析功能,省去了安裝其他工具的必要
4、工具本身功能強大
(1)劫包:模擬接口不給前端返回數據,看前端怎么處理,如果沒有工具,就只能采用斷網、停用服務器
(2)篡改數據:假設沒法去模擬前端對于接口返回數據很長時,怎么去展示,換行?截???小屏幕上頁面扭曲?如果通過篡改數據,就能直觀的把數據返回給前端展示,很明顯的看到前端數據是什么樣的,就不需要從底層改數據
(3)模擬低速、弱網環(huán)境等,有些元素加載不出來會導致樣式問題

三、爬蟲 與 Fiddler 的關系

網絡爬蟲是自動爬取網頁的程序,在爬取的過程中必然會涉及客戶端與服務端之間的通信,也需要發(fā)送一些HTTP請求,并接受服務器返回的結果。
有些網址變化肉眼是看不出規(guī)律的,這時配合抓包軟件會變得較容易。

案例:簡書網頁底部“閱讀更多”
在瀏覽一些圖片網站時,瀏覽到最下面的時候會出現一個“閱讀更多”的字樣,此時單擊“閱讀更多”頁面上顯示更多內容,加載出來的內容跟原來的內容是在同一個網頁上展示的。我們直接看網址的變化是看不出任何規(guī)律的,便無法分析該請求是如何實現的,無法通過程序構造出該請求。

閱讀更多.png

此時可以通過Fiddler 進行抓包,對這些數據進行分析,查看request headers 發(fā)現是通過Get請求來實現的,總共有3個參數:order_by、page、per_page

通過分析就可以知道頁面上只顯示20篇文章,之后就需要通過閱讀更多進行加載
每點擊一次閱讀更多,相當于在修改page值

請求數據.png

知道實現規(guī)律后,就可以通過編寫程序構造出對應的請求,并由程序自動地實現這些請求的發(fā)送。
假如修改page為3、4、5,在新窗口進行訪問,與頁面閱讀更多進行比對

四、設置HTTPS代理(抓取Firefox上的https請求)

Fiddler 默認是抓 http請求的,對于pc上的 https請求,會提示網頁不安全,這時候需要在瀏覽器上安裝證書

Fiddler可以通過偽造CA證書來欺騙瀏覽器和服務器,大概原理就是在瀏覽器面前Fiddler偽裝成一個HTTPS服務器,而在真正的HTTPS服務器面前Fiddler又裝成瀏覽器,從而實現解密HTTPS數據包的目的。

打開百度提示不安全.png

解決辦法

1、檢查Fiddler設置

  • 打開菜單欄:Tools>Fiddler Options>HTTPS
  • 勾選Decrypt HTTPS traffic,里面的子菜單也一起勾選了
    (檢查沒有問題)

2、導出證書

  • 點右上角Actions按鈕(Tools>Fiddler Options>HTTPS)
  • 選第二個選項,導出到桌面,此時桌面上會多一個文件:FiddlerRoot.cer
導出證書.png

3、導入到Firefox瀏覽器

  • 打開瀏覽器,工具>選項>高級>證書>查看證書>證書機構>導入
  • 下載證書彈出框,勾選三個選項,確定
導入證書到Firefox瀏覽器.png

測試下結果,打開百度網頁,成功了,接下來就可以進行抓包了

測試https請求.png

五、使用QuickExec命令行

1、cls (或 clear) 清屏命令
清空會話列表中的所有會話

2、select 篩選某一類型的會話命令
select html,輸入命令后敲回車鍵,在會話列表中所有html類型的會話都已被選中

篩選某一類型的會話命令.png

3、? 查找網址中包含某些字符的會話信息
如 ?jianshu 可以查找出網址中包含“jianshu”字符串的會話信息,跟其他會話信息用不同顏色區(qū)分顯示

? 查找信息.png

4、help 幫助命令
打開官方的使用頁面介紹,所有的命令都會列出來

5、bpu、bpafter 斷點命令

image.png
  • bpafter 網址/會話名:修改Response,中斷某一具體的會話
    比如 bpafter www.baidu.com
    如果想消除命令的話,在命令行中輸入“bpafter”

6、dump 快速保存

保存.png

六、案例分享

鐵路網的貨物跟蹤 為例

頁面有車號、貨票號、驗證碼三個字段,通過輸入不同格式的值來觀察頁面提示與 Fiddler 抓包返回的 json值

1、先輸入格式正確的值,點查詢

頁面提示與 Fiddler 抓包返回的 json值.png

2、修改貨票號的位數,點查詢

修改貨票號的位數查詢結果.png

剛接觸Fiddler時,遇到這種情況我們肯定會有疑惑,那接下來就分析下為什么會是這樣的結果:

1、兩次抓包的接口是一樣嗎?第一個是post,第二個是get,不是同一個
2、第二個請求沒有發(fā)出去,應該是前端直接對數值的位數做了校驗的,這個時候就不會調接口,所以就沒有數據顯示了



如想更深入的使用Fiddler,請查看進階篇

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言fiddler是一個很好的抓包工具,默認是抓http請求的,對于pc上的https請求,會提示網頁不安全,這時...
    胖子愛豬蹄閱讀 13,482評論 4 22
  • Fiddler_官方網站Fiddler_官方文檔Fiddler_官方視頻Fiddler_官方插件1、Filddle...
    52Alice閱讀 8,028評論 0 10
  • 簡介 Fiddler(中文名稱:小提琴)是一個HTTP的調試代理,以代理服務器的方式,監(jiān)聽系統(tǒng)的Http網絡數據流...
    daoyidao閱讀 144,793評論 15 169
  • 本文部分內容參考果殼網對HTTPS的介紹,這里是原文鏈接:http://www.guokr.com/post/11...
    OliverGao閱讀 3,924評論 3 29
  • 一.Fiddler介紹 Fiddler是一個http抓包改包工具,fiddle英文中有“欺騙、偽造”之意,與wir...
    舍末逐本閱讀 2,554評論 0 21

友情鏈接更多精彩內容