1. 程式人生 > >fiddler抓包工具詳解

fiddler抓包工具詳解

item 設備 cat 是什麽 eight 菜單 header 有一個 分析

轉自:http://www.cnblogs.com/yyhh/p/5140852.html

Fiddler 抓包工具總結

閱讀目錄

1. Fiddler 抓包簡介

1). 字段說明

2). Statistics 請求的性能數據分析

3). Inspectors 查看數據內容

4). AutoResponder 允許攔截制定規則的請求

5). Filters 請求過濾規則

6). Timeline 請求響應時間

2. Fiddler 設置解密HTTPS的網絡數據

3. Fiddler 抓取Iphone / Android數據包

4. Fiddler 內置命令與斷點

序章

Fiddler是一個蠻好用的抓包工具,可以將網絡傳輸發送與接受的數據包進行截獲、重發、編輯、轉存等操作。也可以用來檢測網絡安全。反正好處多多,舉之不盡呀!當年學習的時候也蠻費勁,一些蠻實用隱藏的小功能用了之後就忘記了,每次去網站上找也很麻煩,所以搜集各大網絡的資料,總結了一些常用的功能。

Fiddler 下載地址 :https://www.telerik.com/download/fiddler

Fiddler 離線下載地址:http://pan.baidu.com/s/1i3NvE8P 密碼:ozem

下載Fiddler要FQ,我費了好大得勁才翻出去下載到…

win8之後用“Fiddler for .NET4”而win8之前用“Fiidler for .NET2”比較好

技術分享圖片

1. Fiddler 抓包簡介

Fiddler是通過改寫HTTP代理,讓數據從它那通過,來監控並且截取到數據。當然Fiddler很屌,在打開它的那一瞬間,它就已經設置好了瀏覽器的代理了。當你關閉的時候,它又幫你把代理還原了,是不是很貼心。。。

技術分享圖片

1) 字段說明

Fiddler想要抓到數據包,要確保Capture Traffic是開啟,在File –> Capture Traffic。開啟後再左下角會有顯示,當然也可以直接點擊左下角的圖標來關閉/開啟抓包功能。

技術分享圖片

Fiddler開始工作了,抓到的數據包就會顯示在列表裏面,下面總結了這些都是什麽意思:

技術分享圖片

名稱

含義

#

抓取HTTP Request的順序,從1開始,以此遞增

Result

HTTP狀態碼

Protocol

請求使用的協議,如HTTP/HTTPS/FTP等

Host

請求地址的主機名

URL

請求資源的位置

Body

該請求的大小

Caching

請求的緩存過期時間或者緩存控制值

Content-Type

請求響應的類型

Process

發送此請求的進程:進程ID

Comments

允許用戶為此回話添加備註

Custom

允許用戶設置自定義值

圖標

含義

技術分享圖片

請求已經發往服務器

技術分享圖片

已從服務器下載響應結果

技術分享圖片

請求從斷點處暫停

技術分享圖片

響應從斷點處暫停

技術分享圖片

請求使用 HTTP 的 HEAD 方法,即響應沒有內容(Body)

技術分享圖片

請求使用 HTTP 的 POST 方法

技術分享圖片

請求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協議建立連接隧道

技術分享圖片

響應是 HTML 格式

技術分享圖片

響應是一張圖片

技術分享圖片

響應是腳本格式

技術分享圖片

響應是 CSS 格式

技術分享圖片

響應是 XML 格式

技術分享圖片

響應是 JSON 格式

技術分享圖片

響應是一個音頻文件

技術分享圖片

響應是一個視頻文件

技術分享圖片

響應是一個 SilverLight

技術分享圖片

響應是一個 FLASH

技術分享圖片

響應是一個字體

技術分享圖片

普通響應成功

技術分享圖片

響應是 HTTP/300、301、302、303 或 307 重定向

技術分享圖片

響應是 HTTP/304(無變更):使用緩存文件

技術分享圖片

響應需要客戶端證書驗證

技術分享圖片

服務端錯誤

技術分享圖片

會話被客戶端、Fiddler 或者服務端終止

2). Statistics 請求的性能數據分析

好了。左邊看完了,現在可以看右邊了

隨意點擊一個請求,就可以看到Statistics關於HTTP請求的性能以及數據分析了(不可能安裝好了Fiddler一條請求都沒有…):

技術分享圖片

3). Inspectors 查看數據內容

Inspectors是用於查看會話的內容,上半部分是請求的內容,下半部分是響應的內容:

技術分享圖片

4). AutoResponder 允許攔截指定規則的請求

AutoResponder允許你攔截指定規則的求情,並返回本地資源或Fiddler資源,從而代替服務器響應。

看下圖5步,我將“baidu”這個關鍵字與我電腦“f:\Users\YukiO\Pictures\boy.jpeg”這張圖片綁定了,點擊Save保存後勾選Enable rules,再訪問baidu,就會被劫持。

這個玩意有很多匹配規則,如:

1. 字符串匹配(默認):只要包含指定字符串(不區分大小寫),全部認為是匹配

字符串匹配(baidu) 是否匹配
http://www.baidu.com 匹配
http://pan.baidu.com 匹配
http://tieba.baidu.com 匹配

2. 正則表達式匹配:以“regex:”開頭,使用正則表達式來匹配,這個是區分大小寫的

字符串匹配(regex:.+.(jpg | gif | bmp ) $) 是否匹配
http://bbs.fishc.com/Path1/query=foo.bmp&bar 不匹配
http://bbs.fishc.com/Path1/query=example.gif 匹配
http://bbs.fishc.com/Path1/query=example.bmp 匹配
http://bbs.fishc.com/Path1/query=example.Gif 不匹配

技術分享圖片

技術分享圖片

4). Composer 自定義請求發送服務器

Composer允許自定義請求發送到服務器,可以手動創建一個新的請求,也可以在會話表中,拖拽一個現有的請求

Parsed模式下你只需要提供簡單的URLS地址即可(如下圖,也可以在RequestBody定制一些屬性,如模擬瀏覽器User-Agent)

技術分享圖片

5). Filters 請求過濾規則

Fiters 是過濾請求用的,左邊的窗口不斷的更新,當你想看你系統的請求的時候,你刷新一下瀏覽器,一大片不知道哪來請求,看著礙眼,它還一直刷新你的屏幕。這個時候通過過濾規則來過濾掉那些不想看到的請求。

技術分享圖片

勾選左上角的Use Filters開啟過濾器,這裏有兩個最常用的過濾條件:Zone和Host

1、Zone 指定只顯示內網(Intranet)或互聯網(Internet)的內容:

技術分享圖片

2、Host 指定顯示某個域名下的會話:

技術分享圖片

如果框框為黃色(如圖),表示修改未生效,點擊紅圈裏的文字即可

6). Timeline 請求響應時間

在左側會話窗口點擊一個或多個(同時按下 Ctrl 鍵),Timeline 便會顯示指定內容從服務端傳輸到客戶端的時間:

技術分享圖片

2. Fiddler 設置解密HTTPS的網絡數據

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

解密HTTPS需要手動開啟,依次點擊:

1. Tools –> Fiddler Options –> HTTPS

技術分享圖片

2. 勾選Decrypt HTTPS Traffic

技術分享圖片

3. 點擊OK

技術分享圖片

3. Fiddler 抓取Iphone / Android數據包

想要Fiddler抓取移動端設備的數據包,其實很簡單,先來說說移動設備怎麽去訪問網絡,看了下面這張圖,就明白了。

技術分享圖片

可以看得出,移動端的數據包,都是要走wifi出去,所以我們可以把自己的電腦開啟熱點,將手機連上電腦,Fiddler開啟代理後,讓這些數據通過Fiddler,Fiddler就可以抓到這些包,然後發給路由器(如圖):

技術分享圖片

1. 打開Wifi熱點,讓手機連上(我這裏用的360wifi,其實隨意一個都行)

技術分享圖片

2. 打開Fidder,點擊菜單欄中的 [Tools] –> [Fiddler Options]

技術分享圖片

3. 點擊 [Connections] ,設置代理端口是8888, 勾選 Allow remote computers to connect, 點擊OK

技術分享圖片

4. 這時在 Fiddler 可以看到自己本機無線網卡的IP了(要是沒有的話,重啟Fiddler,或者可以在cmd中ipconfig找到自己的網卡IP)

技術分享圖片

技術分享圖片

5. 在手機端連接PC的wifi,並且設置代理IP與端口(代理IP就是上圖的IP,端口是Fiddler的代理端口8888)

技術分享圖片

6. 訪問網頁輸入代理IP和端口,下載Fiddler的證書,點擊下圖FiddlerRoot certificate

技術分享圖片

【註意】:如果打開瀏覽器碰到類似下面的報錯,請打開Fiddler的證書解密模式(Fiddler 設置解密HTTPS的網絡數據)

No root certificate was found. Have you enabled HTTPS traffic decryption in Fiddler yet?

技術分享圖片 技術分享圖片

技術分享圖片 技術分享圖片

7. 安裝完了證書,可以用手機訪問應用,就可以看到截取到的數據包了。(下圖選中是布卡漫畫的數據包,下面還有QQ郵箱的)

技術分享圖片

4. Fiddler 內置命令與斷點

Fiddler還有一個藏的很深的命令框,就是眼前,我用了幾年的Fiddler都沒有發現它,偶爾在別人的文章發現還有這個小功能,還蠻好用的,整理下記錄在這裏。

FIddler斷點功能就是將請求截獲下來,但是不發送,這個時候你可以幹很多事情,比如說,把包改了,再發送給服務器君。還有balabala一大堆的事情可以做,就不舉例子了。

技術分享圖片

命令

對應請求項

介紹

示例

?

All

問號後邊跟一個字符串,可以匹配出包含這個字符串的請求

?google

>

Body

大於號後面跟一個數字,可以匹配出請求大小,大於這個數字請求

>1000

<

Body

小於號跟大於號相反,匹配出請求大小,小於這個數字的請求

<100

=

Result

等於號後面跟數字,可以匹配HTTP返回碼

=200

@

Host

@後面跟Host,可以匹配域名

@www.baidu.com

select

Content-Type

select後面跟響應類型,可以匹配到相關的類型

select image

cls

All

清空當前所有請求

cls

dump

All

將所有請求打包成saz壓縮包,保存到“我的文檔\Fiddler2\Captures”目錄下

dump

start

All

開始監聽請求

start

stop

All

停止監聽請求

stop

斷點命令

bpafter

All

bpafter後邊跟一個字符串,表示中斷所有包含該字符串的請求

bpafter baidu(輸入bpafter解除斷點)

bpu

All

跟bpafter差不多,只不過這個是收到請求了,中斷響應

bpu baidu(輸入bpu解除斷點)

bps

Result

後面跟狀態嗎,表示中斷所有是這個狀態碼的請求

bps 200(輸入bps解除斷點)

bpv / bpm

HTTP方法

只中斷HTTP方法的命令,HTTP方法如POST、GET

bpv get(輸入bpv解除斷點)

g / go

All

放行所有中斷下來的請求

g

示例演示:

?

技術分享圖片

>

技術分享圖片

<

技術分享圖片

=

技術分享圖片

@

技術分享圖片

select

技術分享圖片

cls

技術分享圖片

dump

技術分享圖片

斷點命令:

斷點可以直接點擊Fiddler下圖的圖標位置,就可以設置全部請求的斷點,斷點的命令可以精確設置需要截獲那些請求。如下示例:

技術分享圖片

命令:

bpafter

技術分享圖片 技術分享圖片

bps

技術分享圖片

技術分享圖片

bpv

技術分享圖片

技術分享圖片

g / go

技術分享圖片

技術分享圖片



fiddler抓包工具詳解