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 登陸請求效果圖