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
允許使用者設定自定義值
圖示
含義
請求已經發往伺服器
已從伺服器下載響應結果
請求從斷點處暫停
響應從斷點處暫停
請求使用 HTTP 的 HEAD 方法,即響應沒有內容(Body)
請求使用 HTTP 的 POST 方法
請求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協議建立連線隧道,
響應是 HTML 格式,
響應是一張圖片,
響應是指令碼格式,
響應是 CSS 格式,
響應是 XML 格式,
響應是 JSON 格式
響應是一個音訊檔案
響應是一個視訊檔案
響應是一個 SilverLight
響應是一個 FLASH
響應是一個字型
普通響應成功,
響應是 HTTP/300、301、302、303 或 307 重定向
響應是 HTTP/304(無變更):使用快取檔案
響應需要客戶端證書驗證
服務端錯誤
會話被客戶端、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斷點功能就是將請求截獲下來,但是不傳送,這個時候你可以幹很多事情,比如說,把包改了,再發送給伺服器君。
參考: