使用fiddler抓取HTTPS的數據包(抓取App端的數據包)


眾所周知,我們在做接口測試的時候有兩種情況:
第一種是先拿到接口測試規范文檔,再去做接口測試。
第二種是沒有接口文檔,只有通過自己抓包。

那么說到抓包,就不得不說抓包工具,對於瀏覽器web端,我們只需要通過F12打開開發者工具便可抓包;但是對於手機端,我們就需要利用抓包工具,比如常用的抓包工具:fiddler、Charles。

接下來的內容就是教你如何利用fiddler抓取手機端的包。

這里使用的是安卓模擬器,當然如果你喜歡使用真機測試也是可以的。

  1. 下載並安裝fiddler

    建議去官網下載:

    https://www.telerik.com/fiddler

    當然,官網下載可能比較慢,這里提供百度網盤下載。

    百度網盤地址:

    鏈接:https://pan.baidu.com/s/18hzkk4LRCgsqHOeTuLRWVQ
    提取碼:fe12

    安裝:

    安裝方式很簡單,雙擊下載好的.exe文件,然后選擇目錄,next,next,完成安裝即可。

    下載並安裝完成后打開的界面如下:

    image-20201229224559172
  2. 配置fiddler代理:Tools -> Options

    想要抓取https的數據包必須安裝證書。

    image-20201229225718586

    接着是手機的配置

  3. 查看電腦IP地址

    方式一:打開fiddler軟件 -> 鼠標移至右上角Oline處

    方式二:打開cmd -> ipconfig

  4. 模擬器(手機)配置代理:設置 -> WLAN -> 長按wabao -> 修改網絡(使模擬器與fiddler代理服務器在同一網絡)

    image-20201229230221178

  5. 打開手機模擬器的瀏覽器輸入ip及端口號

    點擊FiddlerRoot certificate下載證書,下載完成后點擊允許安裝證書

    這時候一定要把安裝的證書設置為信任的證書:手機設置->通用->關於本機->證書新人設置,把剛才安裝的證書設置為信任的證書。

  6. 然后打開手機上的app,在fiddler中就可以看到http的數據包了,打開一個https的連接,也可以看到,數據是沒有加密的,說明https數據包抓取成功。

    image-20201230192811252

    🐒PS:如果前面的步驟都設置完成,還是抓不到包,極大可能是因為證書配置有問題,把之前的證書清除,再按照步驟重新配置一遍,重啟fiddler,並且重新在手機上安裝證書或者重啟模擬器。

    🐒CA證書:抓取HTTPS的數據包。

    🐒fiddler代理抓取不到數據包的兩種情況:

    • 雖然fiddler代理可以抓取大多數的數據包,但並不是所有的數據包都能抓到。比如:http2、tcp、udp、websocket,fiddler代理是抓取不到這些數據包的。因為fiddler是基於.net framework實現的,.net framework不支持上述列舉的協議。

    • 還有另外一種情況也是無法抓到數據包的,app使用自帶的證書,app不信任我們給手機安裝的證書。fiddler抓包的原理是中間人攻擊,也就是說,兩頭瞞,欺騙客戶端還欺騙服務器端,如果https證書在app里面寫死,app只信任自己的證書,fiddler代理就沒有辦法瞞過客戶端了,因此也就抓取不到數據包。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM