Fiddler不但能截獲各種瀏覽器發出的 HTTP 請求,也可以截獲各種智慧手機發出的HTTP/ HTTPS 請求。
Fiddler能截獲 Android 和 Windows Phone 等裝置發出的 HTTP/HTTPS 請求。
今天宏哥講解和分享Fiddler 如何截獲安卓行動端發出的 HTTP/HTTPS 請求。
Fiddler 如果想要實現手機抓包,需要先滿足下面 3 個條件:
(1)電腦上安裝有 Fiddler 抓包工具。
(2)安裝有 Fiddler 的電腦必須跟手機處在同一個網路里,並且手機網路代理必須設定為fiddler,當我們的手機傳送資料時必須經過Fiddler這一層服務。
(3)在 Fiddler 中設定好捕獲 HTTPS(具體方法請百度)。
Fiddler 作為代理伺服器,可以接收遠端機器發來的 HTTP/HTTPS 協定的封包,並且將其轉發到 Web 伺服器。
1:APP 開發人員利用 Fiddler 可以截獲手機發出的 HTTP 包,從而偵錯 APP 程式。
2:軟體測試人員可以用其來測試智慧手機上的軟體,做介面測試或者安全測試。
3:截獲了 HTTP/HTTPS 後,可以下斷點修改 HTTP 請求和 HTTP 響應。
PS:下面是重點 設定項
在Fiddler中我們還需要設定遠端連線許可權和埠號,具體操作步驟如下:
1.啟動 Fiddler,單擊選單欄中 Tools->Fiddler Options->Connections,選中「Allow remote computers to connect(允許遠端計算機連線)」,然後設定一個埠,也可以預設為8888。如下圖所示:
選中後就表示允許遠端機器把 HTTP/HTTPS 請求傳送到 Fiddler 上來(設定完後記得要重啟 Fiddler)。同時,我們還能看到 Fiddler 的工作埠號是 8888。
手機和電腦必須在同一區域網,手機最好也關閉4G/5G網路流量, 並且使用wifi,讓手機和fiddler在同一區域網下,具體操作步驟如下:
1.讓android手機的網路進出口指向區域網中fiddler服務地址, 那麼我們這裡就必須要知道Fiddler的ip地址和埠號(port)。
這裡Fiddler的ip地址就是我們當前電腦中的本機ip地址。檢視電腦的 IP 地址,按快捷鍵【Windows+R】,調出執行視窗。輸入 CMD,可以開啟CMD 命令列工具;輸入命令「ipconfig」,可以找到 IP 地址(找到其中的IPv4地址即為本機ip)。
一個電腦可能有多個網路卡,注意要找到真正的 IP 地址,例如某 IP 地址是 10.0.0.11,如下圖所示:
2.可以對照一下當前所安裝的Fiddler中的ip地址是否一致,你可以直接在fiddler上 將滑鼠放置於 Online 工具上就會顯示本機ip地址,如果一樣那麼就可以確保一會設定手機和電腦在同一個區域網內。如下圖所示:
本節內容適合所有的 Android裝置。下面以夜神模擬器為例進行講解,其他品牌的模擬器和真實的手機操作方法與此差不多。具體操作步驟如下:
1.在確定了手機和Fiddler在同一區域網下之後, 那麼我們來到Android手機的設定選項下,找到夜神模擬器手機當前連線的WLAN(一些 Android 手機是單擊右邊的箭頭,有的是長按彈出對話方塊),如下圖所示:
2.看到有一個wifi訊號,長按這個訊號,出現修改網路的彈窗。如下圖所示:
3.點選修改網路,選中高階選項,開啟高階選項,將代理設為手動,代理伺服器主機名填寫電腦的IP,埠號填寫為主機抓包工具的監聽埠。如下圖所示:
4.點選儲存,就成功完成代理的設定了。如下圖所示:
那麼到此Android手機的網路代理設定就到此為止,其他不同型號的Android模擬器和真機設定大同小異,以此類推,實在不會的自己可以百度一下。
1.開啟手機上的瀏覽器,在瀏覽器中輸入連結:http://open.vipexam.org/。中科VIPExam考試學習資源資料庫網站用的是 HTTP 協定而不是 HTTPS 協定,檢視 Fiddler 是否捕獲到了 HTTP 封包。如下圖所示:
2.開啟手機上的 APP,在 APP 中進行一些操作,檢視 Fiddler 是否能捕獲到 HTTP 封包。如下圖所示:
如果抓不到 HTTP 的包,很可能是 Windows 防火牆的問題,到控制面板中關閉防火牆後再試試。
1.開啟手機上的瀏覽器,在瀏覽器中輸入HTTPS協定,檢視Fiddler是否捕獲到了HTTPS封包。一直在報證書安全警告錯誤,無法抓取,因此需要我們安裝證書,原因宏哥在抓取PC端Web頁面包已經說過了,這裡就不做贅述了。如下圖所示:
2.開啟手機上的APP,在APP中進行一些操作,檢視Fiddler是否能捕獲到HTTPS封包。又出現了Tunnel to,如下圖所示:
到此,我們知道了要想抓取手機端Https的資料,還的設定證書,證書不用問了,還是Fiddler下發的。
通過前邊宏哥的測試,我們知道在抓取Android手機封包的時候 跟web端也是一樣,都需要設定證書,否則是無法正常進行抓包的。之前已經在我們的android手機上設定好了Fiddler的代理服務了,那麼現在就可以通過ip+port的方式來存取Fiddler 從而下載對應的證書。具體操作步驟如下:
1.在Android手機上開啟(自帶)的瀏覽器,輸入剛剛設定的ip+port來下載證書,例如:192.168.0.109:8888, 我們點選FiddlerRoot certificate(根證書)下載到android手機上。如果不出意外的話就會出現如下介面:
2.點選後,給證書命名為:FiddlerRoot,點選「確定」(注:選擇安裝的檔案後,需要輸入手機的鎖屏密碼。Android一定要有鎖屏密碼才能安裝證書),如下圖所示:
3.要求設定一個手機密碼,自己設定一個,記住密碼就行,最後不用了去系統-安全-密碼中去掉即可,如下圖所示:
4.點選「確定」,提示證書已安裝,證書安裝成功後,如果你的手機系統沒有設定密碼或者鎖屏圖案,則系統會提示你設定鎖屏圖案或者密碼。如下圖所示:
5.證書安裝好後,檢視已信任證書:具體位置在【設定--->安全--->信任的憑據--->使用者】,如下圖所示:
敲黑板!!!
在最後一步的這個時候可能有些android手機會出現以下問題,會出現 無法安裝證書 因為無法讀取證書檔案的字樣,如下圖所示:
解決方案:
1.在下載之前,你可以手動修改證書的字尾名,修改為.crt 就可以了。如下圖所示:
2.當我們下載的時候,就可以點選編輯按鈕,進行檔名的編輯, 最後儲存。如下圖所示:
3.然後在手機的下載管理中找到剛剛下載好的證書並且開啟它。如下圖所示:
4.點選儲存即為安裝。如下圖所示:
5.完成android手機證書的安裝。如下圖所示:
我們通過上面的Android基本設定就全部結束了,現在可以愉快的Android手機抓包測試了。
為了更清晰的看到行動端抓包,在正式抓包之前,我們還設定一下Fiddler中的請求過濾,我們通過Fiddler選單欄中的Tools--->Options-->HTTPS修改..from all processes這一項。把它設定為from remote clients only 只抓遠端使用者端請求, 方便我們檢視手機抓包資料,如下圖所示:
那麼現在開啟你的android手機瀏覽器存取https網站或者執行手機中的一些app就可以被fiddler所擷取到封包了,如下圖所示:
如果還是無法正常抓取封包,並且手機也無法載入資料的情況下,那麼可能還是跟證書不正確有關係。解決方案:先刪除所有證書再執行下面的操作。那麼我們可能需要安裝一個外掛 CertMaker for iOS and Android。
由於預設的證書不符合Android和iOS的證書要求,所以,需要下載 certmaker外掛,雙擊安裝後,重啟fiddler。注意這一步很重要,必須使用certmaker外掛,不要使用預設的證書生成器,否則抓不到包。
(備註:經驗證,android 和 ios ,如果不安裝此外掛,也是可以抓到包的,官方的檔案上也是用了一個很模稜兩可的說明,may ,可能,都不是那麼的絕對。如果是抓不到包,此步驟可以作為一個解決方案)
iOS devices and Android devices may not work with the default HTTPS interception certificates used by Fiddler. To resolve this incompatibility, you may install a Certificate Generating plugin that generates interception certificates compatible with those platforms.
譯為:
iOS 裝置和 Android 裝置可能無法使用 Fiddler 使用的預設 HTTPS 攔截證書。要解決此不相容問題,您可以安裝生成與這些平臺相容的攔截證書的證書生成外掛。如下圖所示:
外掛下載:https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/fiddlercertmaker.exe 下載之後直接點選安裝就可以了,但是要關閉Fiddler否則無法安裝, 然後重啟Fiddler,然後在Fiddler中重置一下所有證書,點選Fiddler選單選擇Tools-> Options -> HTTPS -> Actions -> Reset All Certificates進行重置證書 ,並且手機也要重新再一次的下載並設定證書。下載安裝完外掛Fiddler這裡會多一個dll檔案,如下圖所示:
如果還是不行可以嘗試關閉電腦的防火牆。
注意:
一個手機可以安裝多個證書,但是每安裝的一個證書裡面都設定有IP地址,所以:安裝的證書和電腦IP是一一對應的,當前的這個證書只能針對某一臺電腦使用,更換電腦後,該證書將不能使用,只能重新安裝與更換的電腦的IP相同的證書才能使用。