Fiddler工具使用介紹二(轉)
Fiddler工具使用介紹二
在上一篇中介紹了Fiddler的基本使用方法。通過上一篇的操作我們可以直接抓取瀏覽器的資料包。但在APP測試中,我們需要抓取手機APP上的資料包,應該怎麼操作呢?
Andriod配置方法:
1)確保手機和Fiddler所在主機在同一個區域網中
2)獲取Fiddler所在主機的ip地址,通過cmd命令進入命令編輯器,輸入ipconfig -all,找到IPv4地址,記下該地址
3)對手機所連線的無線網路進行設定,點選WLAN,長按與Fiddler所在主機在同一個區域網的wifi,長按點選【修改網路】,選中【顯示高階選項】,代理設定為手動,輸入代理伺服器的主機名和埠後儲存。代理伺服器的主機名即2)中的IPv4地址,埠為Fiddler上配置的埠(預設為8888),可以到Fiddler選單欄中【Tool】-【Fiddler Option】的【Connections】中檢視。
4)在手機瀏覽器上輸入:http://IPv4地址:埠(例如:http://192.168.11.29:8888),點選【FiddlerRoot certificate】下載安裝Fiddler證書。
5)若在瀏覽器上無法開啟該地址,需要做兩項檢查:一、確保在瀏覽器、wifi中配置的代理與Fiddler所在主機地址和Fiddler中配置的埠,三者保持一致;二、確保在Fiddler-【Tools】-【Fiddler Option]-[Connection]中【Allow remote computers to connect】已經勾選上,若沒有勾選,則需要勾選後儲存並重啟Fiddler。
6)這時我們開啟手機上的瀏覽器或APP,可以在Fiddler上看到手機上的資料包了。
IOS配置方法:
1)基本與andriod的配置方法一致,除了安裝證書方式與andriod略有不同,另外ios在下載證書後,需要手動信任證書。設定方法:開啟【設定】-【通用】-【關於本機】-【證書信任證書】,找到對應的證書,啟用即可。
HTTPS抓包
上面都是針對HTTP協議進行抓包的設定,那麼HTTPS需要進行什麼配置呢?
1)開啟Fiddler-【Tools】-【Fiddler Option】,切換到HTTPS選項卡,勾選【Capture HTTPS CONNECTs】和【Decrypt HTTPS traffic】,然後點選【Actions】-【Trust Root Certificate】,然後按照提示一路yes,直到彈框提示“Trust Cert success”點選確定後,重啟Fiddler就可以抓取HTTPS協議的資料包了。
Fiddler過濾會話
我們在使用Fiddler進行抓包時,發現只要是使用了Fiddler代理伺服器的所有HTTP/HTTPS資料包都會在Fiddler資料列表中顯示出來,但有時我們只關注從某個或某些伺服器發出的請求,不想要看到其他伺服器的資料包,應該怎麼進行設定呢?我們都知道Fiddler是一款強大的抓包工具,我們可以通過設定來過濾只篩選出我們想要的資料包。
1)在右側選單中,找到Fittlers選項,共有9個部分進行設定
2)Use Filters:勾選則表示使用過濾,不勾選則表示不進行過濾
3)Actions:有四個選項,Run Filterset now:立即執行過濾設定;Load Filterset:載入儲存的過濾設定;Save Filterset:儲存過濾設定;help:幫助
4)Hosts:該設定項有兩個選項
- 第一個下拉框是隻顯示內網或者外網選項
- 第二個下拉框是根據主機名資訊顯示或者隱藏或者標記指定請求
5)Client Process:有三個選項,Show only traffic from:根據程序資訊進行過濾,選擇後,將只顯示由該程序發出的請求;Show only Internet Explorer traffic:只關心由IE瀏覽器發出的請求;Hide traffic from Service Host:隱藏來自service host(即由svchost.exe程序發出)的請求
6)Request Headers:有五個選項,Show only if URL contains:可以通過正則表示式過濾請求地址中包含或不包含的內容,例如REGEX:\.(js|css|js\?.*|css\?.*)$(隱藏所有js和css請求);Hide if URL contains:與Show only if URL contains相反,一個是顯示,一個是隱藏;Flags requests with headers:支援指定某個http請求頭名稱,如果在web session列表中存在該請求頭,會加粗顯示該session;Delete requests headers:與Flags requests with headers類似,這裡是如果包含該請求頭,則刪除該請求頭;Set request header:將HTTP請求頭更新為所輸入的值。
7)Breakpoints:斷點設定,有四個選項。Break request on POST:對POST請求設定斷點;Break request on GET with query string:會為所有方法為GET且URL中包含了給定查詢條件的請求設定斷點;Break on XMLHttpRequest:對所有能夠確定是通過XMLHTTPRequest物件傳送的請求設定斷點;Break response on Content-Type:會為所有響應頭Content-Type中包含了指定文字的響應設定響應斷點。
8)Response Status Code:根據響應狀態碼設定斷點。
9)Response Type and Size:有幾種型別,一類是根據響應資料的型別顯示或隱藏;一類是根據響應資料的大小顯示或隱藏;一類是根據響應所需要的時間設定背景顏色;一類是根據檔案型別進行限制。
- type有以下幾種型別:
- Time HeatMap複選框會基於伺服器返回給定響應所需要的時間為每個session設定背景顏色。
10)Response Headers:與Request Headers不同的是,這塊區域是針對響應資料的頭部進行過濾。
這麼多設定項,比較常用的就是1.2.3部分。通過過濾設定,可以快速的幫助我們找到我們需要抓包分析的資料包,從而提高效率,避免過多的資料包資訊干擾我們找到正確的資料包。