[轉]fiddler 抓包 HTTPS 請求
教程開始
安裝 fiddler
首先準備一臺可以上網的 windos 電腦,準備一部智能手機。
fiddler 抓包工具:下載地址( 自行百度一搜一大片)。安裝,打開如果遇到. net framework 錯誤,下載一個高本版的. net 即可。好了教程已經完成了一大半。
打開 fiddler 隨便打開下瀏覽器。發現已經可以抓包,但想要抓手機 https 還需要做一些設置。
配置 fiddler
- 打開 fiddler 配置 Tools –> Fiddler Options.
- 打開 HTTPS 配置項,勾選 “CaptureHTTPS CONNECTs”,同時勾選 “Decrypt HTTPS traffic”,彈出的對話框選擇是(這裏是按照 fiddler 自己的證書)如果跟我一樣手機跟電腦是用 wifi 進行鏈接的話還需要選擇 “…fromremote clients only”。如果需要監聽不可信的證書的 HTTPS 請求的話,需要勾選 “Ignore servercertificate errors”。
- 打開 Conections 配置項, 這裏可以修改 Fiddler 代理端口號。勾選 “Allow remote computersto connect。提示需要重啟 fiddler。
- 哈哈,高端的來了,需要寫點代碼。這裏是為了可以抓客戶端使用 httpURLConnection 的包。
Ruler –>CustomizeRules
在函數 OnBeforeResponse 裏面添加下面代碼:
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
oSession.oResponse.headers["Connection"] = "Keep-Alive";
}
- 1
- 2
- 3
添加後代碼為:
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
oSession.oResponse.headers["Connection"] = "Keep-Alive";
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
不要忘記重啟 fiddler!!!
配置手機
保證手機跟 pc 是在同一個網段下。
配置手機連接的 wifi,可能每個手機打開 wifi 配置的方式都不太一樣,仔細研究下,選擇已經連接的網絡,打開修改網絡窗口。顯示高級屬性,配置網絡代理–> 手動 代理服務器主機名:填寫 pc 機的 IP 地址即可例如:192.168.0.4,代理服務器端口號:fiddler 的代理端口號,如果沒有修改就是 8888。
關鍵步驟哈:
下載安裝 fiddler 的證書
在手機瀏覽器打開 代理服務器:端口號 例如上面填寫的就是 192.168.0.4:8888,點擊頁面中的 “FiddlerRootcertificate” 鏈接,在彈出的對話框中隨便設置一個名稱確定即可。
抓包截圖
測試機上沒裝多少軟件,打開百度錢包來試試
好了。大功告成!
讓我們想想
通過 fiddler 可以抓包,是不是說 https 就是不安全的了呢,畢竟所有的請求對我們來說都是透明的呢。其實剛才的過程很重要的一點就是我們下載並且安裝了 fiddler 的根證書,對於 pc 端來說就是配置 fiddler https 選項時彈出的對話框,對於手機來說就是我們去 pcip 地址: fiddler 代理端口這個地址下載證書的過程。
而對 https 的安全來說,https 安全的前提就是可信的根證書!!!!
而,之前的操作無疑是在我們系統裏面安裝了不可信的根證書。使得 fiddler 對我們的通信造成了中間人攻擊!。
簡單的說就是我們與服務器進行通信,會先獲取服務器的證書,進行校驗校驗過程是用本地的可信根證書進行校驗,而裝入 fiddler 的根證書後,fiddler 可以偽造證書,獲取我們與服務器通信的秘鑰,進行破解我們的通信。所以對我們我們系統來說安裝證書是一個多麽危險的操作!
哐哐哐!!查水表!!!
[轉]fiddler 抓包 HTTPS 請求