1. 程式人生 > 實用技巧 >fiddler抓安卓7.0以上版本

fiddler抓安卓7.0以上版本

我在抓取iOS時,安裝證書後信任該證書即可抓包除錯,但是安卓上就出現Tunnel to…443,這說明沒有抓取成功,我們需要從頭開始檢查有沒有問題
在這裡插入圖片描述

1.檢視fiddler設定是否異常

在這裡插入圖片描述

2.檢視是否在同一個區域網

設定代理IP和埠
在這裡插入圖片描述

3.檢視證書

裝置:小米pad 4
小米系統:MIUI 10.2
安卓版本:8.1.0

開啟 更多設定–系統安全–加密與憑據–信任的憑據–使用者,刪除舊證書
開啟瀏覽器,輸入http://192.168.1.225:8888,點選FiddlerRoot certificate下載證書
開啟資料夾,進入Download資料夾,點選FiddlerRoot.cer安裝證書
重啟fiddler,重連WiFi

但是發現沒有用,步驟是正確的,最後發現是安卓版本問題,因為我的裝置是安卓系統 7.0 以上的,裡面有個 SSL Pinning,SSL Pinning是一種防止中間人攻擊(MITM)的技術,主要的機制是在客戶端發起請求->收到伺服器發來的證書這一步之後,對收到的證書進行校驗,如果收到的證書不被客戶端所信任,就直接斷開連線不繼續請求。

所以在遇到對關鍵請求開啟了SSL Pinning的APP時,我們抓包就只能看到APP上提示無法連線網路或者請求失敗之類的提示;而在抓包工具的介面上,要麼就只能是看到一排CONNECT請求,獲取到了證書後卻沒有後續了,要麼就只有一些無關的請求,找不到自己想要的那個介面。

這個問題是怎麼產生的呢?是這樣,當我們使用抓包工具抓包時,抓包工具在攔截了服務端返回的內容並重發給客戶端的時候使用的證書並不是服務端原來的證書,而是抓包工具自己的,抓包工具自己的證書並不是APP開發者設定的服務端原本的證書,於是就構成了中間人攻擊,觸發SSL Pinning的機制導致連線被中斷,所以我們無法直接抓到包。

4.使用相容Xposed的框架+JustTrustMe

這個方案使用的是JustTrustMe這個Xposed模組,它所做的事情就是將各種已知的的HTTP請求庫中用於校驗證書的API都進行Hook,使無論是否是可信證書的情況,校驗結果返回都為正常狀態,從而實現繞過證書檢查的效果。

百度雲盤VirtualXposed_0.18.2和JustTrustMe下載地址:
https://pan.baidu.com/s/1S6qHw-1S80rpMMi5v-xL2A
mcgt

在這裡插入圖片描述

1、安裝後開啟VirtualXposed,點選新增應用,選擇被測應用JustTrustMe(不勾選JustTrustMe在模組管理中無法檢測到Xposed),點選安裝
2、點選模組管理,勾選JustTrustMe
3、點選重啟
4、點選返回按鈕,向上滑動頁面,點選一克隆的被測應用
5、開始抓包
在這裡插入圖片描述