fiddler手機抓包的原理與抓pc上的web數據同樣,都是把fiddler看成代理,網絡請求走fiddler,fiddler從中攔截數據,因爲fiddler充當中間人的角色,因此能夠解密httpsandroid
下面開始手機抓包設置教程ios
File—–>勾選capture trafficweb
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
websocket
因爲默認的證書不符合android和ios的證書要求,因此,須要下載certmaker插件,雙擊安裝後,重啓fiddler。注意這一步很重要,必須使用certmaker插件,不要使用默認的證書生成器,不然抓不到包。
網絡
首先保證手機與pc在同一個局域網中
鼠標移動到fiddler右上角的Online,查看pc的ip,192.168.1.106
app
手機ip是,192.168.1.101,跟pc在同一個網段。
socket
找到鏈接的無線,設置代理,代理ip要與online中的ip一致
tcp
在瀏覽器中,輸入http://192.168.1.106:8888, 點擊最下邊的FiddlerRoot certificate,肯定安裝。
至此所有都設置完了,咱們來看下效果,以手機web版qq爲例,截圖是空間「贊」的請求
同理,也能夠抓取手機qq app版、支付寶、淘寶等,不過手機qq有些走的http2協議,因此抓不到,這種狀況就得用wireshark抓包了,不過抓取後,解密是個問題。
wireshark抓手機qq app版的贊請求
不少網友問我,按照教程來了,可是抓不到包,關於這個問題,這裏統一答覆。
fiddler並不支持所有協議,目前已知的有http二、tcp、udp、websocket等,若是應用走了以上協議,那麼fiddler確定是抓不到的。
http2:由於fiddler是基於.net framework實現的,由於.net framework不支持http2,因此fiddler沒法抓取http2
fiddler抓包的原理是中間人攻擊,也就是說,兩頭瞞,欺騙客戶端&&欺騙服務器端,若是https證書寫死在app裏,也就是說,app不信任fiddler頒發給它的證書,app只信任本身的證書,fiddler無法瞞客戶端了,所以fiddler也就抓取不到包了。
再多說幾句,若是是本身開發的app,開發調試方便起見,可使用相似wireshark的工具導入服務器證書,抓包解密。
除了上述已知不能抓包的狀況,其餘狀況都應該能抓取。如下是排查,修正問題的步驟。
由於百度是https加密的,因此若是配置正確確定是能夠抓到的。注意,我這裏說的是三個條件,手機&&瀏覽器&&百度網頁的首頁,這些條件,都得知足 。
手機瀏覽器的百度首頁這個樣子。
若是抓不到,能夠肯定是配置有問題。覈實fiddler使用certmarker插件而且在手機上也安裝了;若是已安裝,則從新安裝。 若是還不work,那麼,從新生成證書,電腦和手機都從新安裝,而後重啓fiddler。通常來講,從新安裝手機上的證書就解決問題了。
抓取 手機百度app 登錄請求效果圖
fiddler抓包for ios
fiddler抓包for android
若是你以爲本文寫得好,請鼓勵一下,謝謝~~