共計(jì) 3610 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。
Fiddler 是一款強(qiáng)大的 Web 調(diào)試工具,用于在瀏覽器和服務(wù)器之間攔截和檢查 HTTP/HTTPS 流量。它可以幫助開發(fā)人員跟蹤和調(diào)試 Web 應(yīng)用程序的性能問題和安全問題。
Fiddler 可以顯示 HTTP 請(qǐng)求和響應(yīng)的詳細(xì)信息,包括請(qǐng)求頭、請(qǐng)求體、響應(yīng)頭和響應(yīng)體。
它還提供了很多其他功能,如自定義過濾器、自動(dòng)響應(yīng)和腳本擴(kuò)展。Fiddler 是免費(fèi)的,并且可以在 Windows、macOS 和 Linux 上使用。
當(dāng)年學(xué)習(xí)的時(shí)候也蠻費(fèi)勁,一些蠻實(shí)用隱藏的小功能用了之后就忘記了,每次去網(wǎng)站上找也很麻煩,所以搜集各大網(wǎng)絡(luò)的資料,總結(jié)了一些常用的功能。
一、Fiddler 下載
注意:Fiddler2 需要.NET v2,F(xiàn)iddler4 需要.NET v4,不過這些也不用怎么管,下載用默認(rèn)的就好了。
官網(wǎng)下載:https://www.telerik.com/fiddler
鏈接: https://pan.baidu.com/s/1sCt8uZdnOJHtuTGzcJYHHg 提取碼: 2q27
二、Fiddler 安裝
由于是 Fiddler 只支持 Windows XP 到 Windows 10,安裝我就不多說了,exe 傻瓜式安裝,大家都能明白。
三、Fiddler 使用
先給大家簡(jiǎn)單說一下,F(xiàn)iddler 這款抓包工具,與別人工具還是有所不同的。
Fiddler 是通過改寫 HTTP 代理,讓數(shù)據(jù)從它那通過,來監(jiān)控并且截取到數(shù)據(jù)。當(dāng)然 Fiddler 很屌,在打開它的那一瞬間,它就已經(jīng)設(shè)置好了瀏覽器的代理了。當(dāng)你關(guān)閉的時(shí)候,它又幫你把代理還原了,是不是很方便?
1、開啟或關(guān)閉抓包功能
Fiddler 想要抓到數(shù)據(jù)包,要確保 Capture Traffic 是開啟,在“File –> Capture Traffic”。開啟后再左下角會(huì)有顯示,當(dāng)然也可以直接點(diǎn)擊左下角的圖標(biāo)來關(guān)閉 / 開啟抓包功能。
2、字段說明
Fiddler 開始工作了,抓到的數(shù)據(jù)包就會(huì)顯示在列表里面,下面總結(jié)了這些都是什么意思?
3、Statistics 請(qǐng)求的性能數(shù)據(jù)分析
好了,左邊看完了,現(xiàn)在可以看右邊了;隨意點(diǎn)擊一個(gè)請(qǐng)求,就可以看到 Statistics 關(guān)于 HTTP 請(qǐng)求的性能以及數(shù)據(jù)分析了。
4、Inspectors 查看數(shù)據(jù)內(nèi)容
Inspectors 是用于查看會(huì)話的內(nèi)容,上半部分是請(qǐng)求的內(nèi)容,下半部分是響應(yīng)的內(nèi)容;
5、AutoResponder 允許攔截指定規(guī)則的請(qǐng)求
AutoResponder 允許你攔截指定規(guī)則的求情,并返回本地資源或 Fiddler 資源,從而代替服務(wù)器響應(yīng)。
看下圖 5 步,我將“baidu”這個(gè)關(guān)鍵字與我電腦“f:\Users\YukiO\Pictures\boy.jpeg”這張圖片綁定了,點(diǎn)擊“Save”保存后勾選“Enable rules”,再訪問 baidu,就會(huì)被劫持。
這個(gè)玩意有很多匹配規(guī)則,如:
1. 字符串匹配(默認(rèn)):只要包含指定字符串(不區(qū)分大小寫),全部認(rèn)為是匹配
字符串匹配(baidu)是否匹配
http://www.baidu.com 匹配
http://pan.baidu.com 匹配
http://tieba.baidu.com 匹配
2. 正則表達(dá)式匹配:以“regex:”開頭,使用正則表達(dá)式來匹配,這個(gè)是區(qū)分大小寫的
字符串匹配(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 不匹配
6、Composer 自定義請(qǐng)求發(fā)送服務(wù)器
Composer 允許自定義請(qǐng)求發(fā)送到服務(wù)器,可以手動(dòng)創(chuàng)建一個(gè)新的請(qǐng)求,也可以在會(huì)話表中,拖拽一個(gè)現(xiàn)有的請(qǐng)求
Parsed 模式下你只需要提供簡(jiǎn)單的 URLS 地址即可(如下圖,也可以在 RequestBody 定制一些屬性,如模擬瀏覽器 User-Agent)
7、Filters 請(qǐng)求過濾規(guī)則
Fiters 是過濾請(qǐng)求用的,左邊的窗口不斷的更新,當(dāng)你想看你系統(tǒng)的請(qǐng)求的時(shí)候,你刷新一下瀏覽器,一大片不知道哪來請(qǐng)求,看著礙眼,它還一直刷新你的屏幕。這個(gè)時(shí)候通過過濾規(guī)則來過濾掉那些不想看到的請(qǐng)求。
勾選左上角的 Use Filters 開啟過濾器,這里有兩個(gè)最常用的過濾條件:Zone 和 Host
Zone 指定只顯示內(nèi)網(wǎng)(Intranet)或互聯(lián)網(wǎng)(Internet)的內(nèi)容:
Host 指定顯示某個(gè)域名下的會(huì)話:
如果框框?yàn)辄S色(如圖),表示修改未生效,點(diǎn)擊紅圈里的文字即可!
8、Timeline 請(qǐng)求響應(yīng)時(shí)間
在左側(cè)會(huì)話窗口點(diǎn)擊一個(gè)或多個(gè)(同時(shí)按下 Ctrl 鍵),Timeline 便會(huì)顯示指定內(nèi)容從服務(wù)端傳輸?shù)娇蛻舳说臅r(shí)間:
9、Fiddler 設(shè)置解密 HTTPS 的網(wǎng)絡(luò)數(shù)據(jù)
Fiddler 可以通過偽造 CA 證書來欺騙瀏覽器和服務(wù)器。Fiddler 是個(gè)很會(huì)裝逼的好東西,大概原理就是在瀏覽器面前 Fiddler 偽裝成一個(gè) HTTPS 服務(wù)器,而在真正的 HTTPS 服務(wù)器面前 Fiddler 又裝成瀏覽器,從而實(shí)現(xiàn)解密 HTTPS 數(shù)據(jù)包的目的。
解密 HTTPS 需要手動(dòng)開啟,依次點(diǎn)擊:
(1)、Tools –> Fiddler Options –> HTTPS;
(2)、勾選 Decrypt HTTPS Traffic
(3)、點(diǎn)擊 OK
10、Fiddler 內(nèi)置命令與斷點(diǎn)
Fiddler 還有一個(gè)藏的很深的命令框,就是眼前,我用了幾年的 Fiddler 都沒有發(fā)現(xiàn)它,偶爾在別人的文章發(fā)現(xiàn)還有這個(gè)小功能,還蠻好用的,整理下記錄在這里。
FIddler 斷點(diǎn)功能就是將請(qǐng)求截獲下來,但是不發(fā)送,這個(gè)時(shí)候你可以干很多事情,比如說,把包改了,再發(fā)送給服務(wù)器君。還有 balabala 一大堆的事情可以做,就不舉例子了。
命令 | 對(duì)應(yīng)請(qǐng)求項(xiàng) | 介紹 | 示例 |
---|---|---|---|
? | All | 問號(hào)后邊跟一個(gè)字符串,可以匹配出包含這個(gè)字符串的請(qǐng)求 | |
> | Body | 大于號(hào)后面跟一個(gè)數(shù)字,可以匹配出請(qǐng)求大小,大于這個(gè)數(shù)字請(qǐng)求 | >1000 |
< | Body | 小于號(hào)跟大于號(hào)相反,匹配出請(qǐng)求大小,小于這個(gè)數(shù)字的請(qǐng)求 | <100 |
= | Result | 等于號(hào)后面跟數(shù)字,可以匹配 HTTP 返回碼 | =200 |
@ | Host | @后面跟 Host,可以匹配域名 | @www.baidu.com |
select | Content-Type | select 后面跟響應(yīng)類型,可以匹配到相關(guān)的類型 | select image |
cls | All | 清空當(dāng)前所有請(qǐng)求 | cls |
dump | All | 將所有請(qǐng)求打包成 saz 壓縮包,保存到“我的文檔 \Fiddler2\Captures”目錄下 | dump |
start | All | 開始監(jiān)聽請(qǐng)求 | start |
stop | All | 停止監(jiān)聽請(qǐng)求 | stop |
斷點(diǎn)命令 | |||
bpafter | All | bpafter 后邊跟一個(gè)字符串,表示中斷所有包含該字符串的請(qǐng)求 | bpafter baidu(輸入 bpafter 解除斷點(diǎn)) |
bpu | All | 跟 bpafter 差不多,只不過這個(gè)是收到請(qǐng)求了,中斷響應(yīng) | bpu baidu(輸入 bpu 解除斷點(diǎn)) |
bps | Result | 后面跟狀態(tài)嗎,表示中斷所有是這個(gè)狀態(tài)碼的請(qǐng)求 | bps 200(輸入 bps 解除斷點(diǎn)) |
bpv / bpm | HTTP 方法 | 只中斷 HTTP 方法的命令,HTTP 方法如 POST、GET | bpv get(輸入 bpv 解除斷點(diǎn)) |
g / go | All | 放行所有中斷下來的請(qǐng)求 | g |
bpafter 命令示例:
斷點(diǎn)命令:
斷點(diǎn)可以直接點(diǎn)擊 Fiddler 下圖的圖標(biāo)位置,就可以設(shè)置全部請(qǐng)求的斷點(diǎn),斷點(diǎn)的命令可以精確設(shè)置需要截獲那些請(qǐng)求。如下示例: