1. 程式人生 > >Fiddler抓包(Android app)

Fiddler抓包(Android app)

簡述:

在開發android app的時候,會涉及到與後端的互動,比如在觸發事件後,後臺有沒有返回資料,向後臺提交資料有沒有成功。
舉個例子:

測試登陸app介面的時候。輸入使用者名稱與密碼。提交的時候,就需要向後端請求結果,後端會根據使用者名稱和密碼去查詢資料庫,如果正確,就返回一個true,就可以正確跳轉到下一個activity.如果為false,就向用戶顯示密碼或使用者名稱錯誤。

在這個過程,就需要知道,點選按鈕的時,手機app是否向後端傳送了資料,傳送資料成功,後端有沒有回傳一條資料,此時就需要用到抓包工具。
這裡將介紹Fiddler抓包工具。

Fiddler可以將網路傳輸傳送與接受的資料包進行截獲、重發、編輯、轉存

等操作。也可以用來檢測網路安全

1、下載安裝 Fiddler

2 > 百度搜尋Fiddler下載

3 > 下載完成後,進行傻瓜式安裝便可

2、配置 Fiddler電腦端

Fiddler是通過改寫HTTP代理,讓資料從它那通過,來監控並且擷取到資料。

Fiddler通過偽造CA證書來欺騙瀏覽器和伺服器。

1 > 啟動Fiddler,開始設定

點選“Tools” -> “Fiddler Options”-> “HTTP

選中"Decrpt HTTPS traffic", Fiddler就可以截獲HTTPS請求


2 >點選“Tools

” -> “Fiddler Options” -> “Connections

選中"Allow remote computers to connect".  是允許別的機器把HTTP/HTTPS請求傳送到Fiddler上來


記住埠號是:8888

電腦端配置完畢,重啟Fiddler

3、配置 Android手機端

1 > 獲取PC端IP地址,輸入“ipconfig”回車即可。本人電腦是雙IP,這裡取其中一個IP:192.168.211.84


這時便獲得PC的IP和埠了

2 > 確定手機端與電腦端必須連線在同一個區域網下,即手機與電腦須同時連線一個路由器。

進入手機的“設定”->“WLAN”->選擇連線到的無線網,長按彈出選項框,選擇修改網路配置。

選擇顯示高階選項,將代理設定成手動,將上面獲取到的ip地址埠號填入,點選確定。


4、下載Fiddler的安全證書

在Android手機的瀏覽器輸入:代理伺服器主機名:代理伺服器埠,這裡是http://192.168.211.84:8888, 點"FiddlerRoot certificate" 然後安裝證書,如圖:


現在你可以在fiddler上對手機app進行抓包

此時你會發現fiddler抓取的資料包包括了電腦端和手機端的,而手機端的又包括了不同app的資料包。此時就需要過濾了。

稍後,會詳細介紹如何過濾。

5、Fiddler欄位說明

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

允許使用者設定自定義值


圖示

含義

clip_image001[13]

請求已經發往伺服器

clip_image002[4]

已從伺服器下載響應結果

clip_image003[4]

請求從斷點處暫停

clip_image004[4]

響應從斷點處暫停

clip_image005[4]

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

clip_image006[4]

請求使用 HTTP 的 POST 方法

clip_image007[4]

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

clip_image008[4]

響應是 HTML 格式,

clip_image009[4]

響應是一張圖片,

clip_image010[4]

響應是指令碼格式,

clip_image011[4]

響應是 CSS 格式,

clip_image012[4]

響應是 XML 格式,

clip_image013[4]

響應是 JSON 格式

clip_image014[4]

響應是一個音訊檔案

clip_image015[4]

響應是一個視訊檔案

clip_image016[4]

響應是一個 SilverLight

clip_image017[4]

響應是一個 FLASH

clip_image018[4]

響應是一個字型

clip_image019[4]

普通響應成功,

clip_image020[4]

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

clip_image021[4]

響應是 HTTP/304(無變更):使用快取檔案

clip_image022[4]

響應需要客戶端證書驗證

clip_image023[4]

服務端錯誤

clip_image0244

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

  

6、Statistics 請求的效能資料分析

隨意點選一個請求,就可以看到Statistics關於HTTP請求的效能以及資料分析了


7、Inspectors 檢視資料內容

Inspectors是用於檢視會話的內容,上半部分是請求的內容,下半部分是響應的內容。


8、AutoResponder 允許攔截指定規則的請求

9、Composer 自定義請求傳送伺服器

Composer允許自定義請求傳送到伺服器,可以手動建立一個新的請求,也可以在會話表中,拖拽一個現有的請求
Parsed模式下你只需要提供簡單的URLS地址即可(如下圖,也可以在RequestBody定製一些屬性,如模擬瀏覽器User-Agent)

10、Filters 請求過濾規則

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

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

Zone 指定只顯示內網(Intranet)或網際網路(Internet)的內容。

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

2  >例如,前面提到的想獲取手機App的的包

在"show only if URL contains"裡面輸入你開發app與後端請求資料時後端的ip地址和埠號。此時就可以得到你想要的包了。


11、Timeline 請求響應時間

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


12、Fiddler 內建命令與斷點

FIddler斷點功能就是將請求截獲下來,但是不傳送,這個時候你可以幹很多事情,比如說,把包改了,再發送給伺服器君。


參考: