天天看點

fiddler抓包後APP無法通路的解決問題原因

fiddler抓包後APP無法通路的解決

  • 問題原因
    • 如何解決
    • 手機抓包的具體操作

問題原因

如果開啟fiddler抓包後,部分APP正常解密HTTPS,部分APP不行(比較典型的是應用商店,淘寶,知乎等)問題的原因基本都是因為對應APP開啟了證書校驗,英文名是證書 Pinning。

具體Pinning原理不解釋了,基本原理是APP内置了一個證書校驗。導緻你雖然安裝并且信任了你抓包工具的證書,但是如果APP開啟了Pinning,仍然會把你這個證書當做無效證書,導緻HTTPS建立失敗。

當然部分APP,似乎在HTTPS失敗後有其他的備選方案,比如淘寶似乎在這種情況下部分内容仍然可以通路,似乎是有走TCP請求的情況。

另外一種情況是所有APP都無法解密HTTPS,那就是其他原因了,比如

1,你的手機上沒有安裝信任fiddler證書

2,代理伺服器是不是沒設定對

3,fiddler證書問題,更新一下試試。fiddler官網提供了一個移動裝置證書插件,會把fiddler的預設證書更換掉,雖然我沒遇到過fiddler證書無法抓包的情況,不過如果遇到了,也許可以試試安裝下這個插件

如何解決

稍微查了下,網上的方案基本都是用這個

https://github.com/moxie0/AndroidPinning

安裝這個APK還需要先安裝xposed架構。這裡有個坑,小米手機直接裝xposed會無法開機,不要問我怎麼知道的…無法開機了就線刷回來,刷入一個miui版本的xposed,或者第三方固件,網上有相關教程。

當然還有一個叫太極的架構,據說是基于xposed修改的,不需要root之類的,不知道能不能用,我也沒試過

這個APK基于xposed架構,邏輯也比較簡單,就是hook了系統的證書校驗函數,導緻你不管怎麼校驗,傳回的都是OK。這樣也就徹底不存在證書校驗不通過的問題了,你的fiddler根證書被APP認為是安全的,當然就可以順利解密了。

不過需要ROOT,現在大部分手機都不好ROOT了,小米還行,有官方支援。

比較蛋疼的是小米手機無法直接在浏覽器安裝crt檔案,不知道是為了什麼目的,防止被誘導安裝證書?

需要在設定,系統安全,證書憑證裡,選擇從本地存儲安裝。

如果你使用虛拟機的話,使用fiddler抓取虛拟機的包,跟手機操作類似,把wifi的代理設定上就行了。具體代理IP位址,你可以看一下虛拟機的IP,好像一般都是10.0.2.X,代理就設定成10.0.2.2(我也不知道為啥不是10.0.2.1,可能跟NAT有關系),然後就可以在fiddler裡看到抓包了。如果你的虛拟機安裝了xposed和justrustme,就可以抓包看到類似知乎和淘寶的HTTPS内容了。

手機抓包的具體操作

1,windows搭建熱點(當然用虛拟機其實更友善,不過虛拟機總感覺穩定性不好,一些APP無法在虛拟機上正常運作)

2,手機連接配接熱點,設定代理IP

3,手機通路IP:8888頁面,把證書下載下傳下來安裝上

4,確定已經安裝了justrustme

5,好了,在windows上開啟fiddler,愉快抓包吧,可以在fiter裡開啟過濾,隻抓remote的包,避免windows的一些請求幹擾

繼續閱讀