原文:android
https://blog.csdn.net/wangjun5159/article/details/52202059ios
fiddler手機抓包原理web
fiddler手機抓包的原理與抓pc上的web數據同樣,都是把fiddler看成代理,網絡請求走fiddler,fiddler從中攔截數據,因爲fiddler充當中間人的角色,因此能夠解密https瀏覽器
下面開始手機抓包設置教程服務器
設置fiddler抓包websocket
File—–>勾選capture traffic網絡
設置抓https和解密httpsapp
Tools—–>fiddler options—–>https—–>capture https traffic—->decrypt https traffic—>Ignore server certificate errorssocket
因爲咱們只抓手機的,因此這裏選擇 from remote clients onlytcp
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並不支持所有協議,目前已知的有http二、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 登錄請求效果圖
參考