fiddler手機抓包原理
fiddler手機抓包的原理與抓pc上的web資料一樣,都是把fiddler當作代理,網路請求走fiddler,fiddler從中攔截資料,由於fiddler充當中間人的角色,所以可以解密https
下面開始手機抓包設定教程 設定fiddler抓包
File—–>勾選capture traffic 設定抓https和解密https
Tools—–>fiddler options—–>https—–>capture https traffic—->decrypt https traffic—>Ignore server certificate errors
由於我們只抓手機的,所以這裡選擇 from remote clients only
connections—–>allow remote computers to connect
由於是手機串連代理,所以勾選allow remote computers to connect
給fiddler安裝certmaker外掛程式
由於預設的認證不符合android和ios的認證要求,所以,需要下載certmaker外掛程式,雙擊安裝後,重啟fiddler。注意這一步很重要,必須使用certmaker外掛程式,不要使用預設的認證產生器,否則抓不到包。
設定手機代理 手機與pc在同一個網段
首先保證手機與pc在同一個區域網路中
滑鼠移動到fiddler右上方的Online,查看pc的ip,192.168.1.106
手機ip是,192.168.1.101,跟pc在同一個網段。
設定手機代理
找到串連的無線,設定代理,代理ip要與online中的ip一致
手機安裝根憑證
在瀏覽器中,輸入http://192.168.1.106:8888, 點擊最下邊的FiddlerRoot certificate,確定安裝。
效果
至此全部都設定完了,我們來看下效果,以手機web版qq為例,截圖是空間“贊”的請求
後續的問題
同理,也可以抓取手機qq app版、支付寶、淘寶等,不過手機qq有些走的http2協議,所以抓不到,這種情況就得用wireshark抓包了,不過抓取後,解密是個問題。
wireshark抓手機qq app版的贊請求
抓不到https包
很多網友問我,按照教程來了,但是抓不到包,關於這個問題,這裡統一回覆。 fiddler抓不到的情況分析 fiddler並不是支援全部協議
fiddler並不支援全部協議,目前已知的有http2、tcp、udp、websocket等,如果應用走了以上協議,那麼fiddler肯定是抓不到的。
http2:因為fiddler是基於.net framework實現的,因為.net framework不支援http2,所以fiddler無法抓取http2 認證寫死在app中,fiddler不能抓取
fiddler抓包的原理是中間人攻擊,也就是說,兩頭瞞,欺騙用戶端&&欺騙伺服器端,如果https認證寫死在app裡,也就是說,app不信任fiddler頒發給它的認證,app只信任自己的認證,fiddler沒法瞞用戶端了,因此fiddler也就抓取不到包了。
再多說幾句,如果是自己開發的app,開發調試方便起見,可以使用類似wireshark的工具匯入伺服器憑證,抓包解密。 修正不能抓取包問題
除了上述已知不能抓包的情況,其他情況都應該能抓取。以下是排查,修正問題的步驟。 確認能否抓到手機瀏覽器的百度首頁
因為百度是https加密的,所以如果配置正確肯定是可以抓到的。注意,我這裡說的是三個條件,手機&&瀏覽器&&百度網頁的首頁,這些條件,都得滿足 。
手機瀏覽器的百度首頁這個樣子。
重新安裝認證
如果抓不到,可以確定是配置有問題。核實fiddler使用certmarker外掛程式並且在手機上也安裝了;如果已安裝,則重新安裝。 如果還不work,那麼,重建認證,電腦和手機都重新安裝,然後重啟fiddler。一般來說,重新安裝手機上的認證就解決問題了。
抓取 手機百度app 登陸請求效果圖
參考
fiddler抓包for ios
fiddler抓包for android 打賞
如果你覺得本文寫得好,請鼓勵一下,謝謝~~