昨天我們聊到,為什麼在 Wireshark 裡常常看不到 HTTP 明文,因為它們都被包在了 TLS/SSL 加密通道裡,變成了 HTTPS。
今天我們就要把這層「祕密面紗」揭開,來看看 Wireshark 能幫我們做到什麼。
首先要記得一件事:
Wireshark 抓到的 HTTPS 流量,本質上還是 TCP 封包,只是應用層被 TLS 加密了。
所以在 Wireshark 裡你看到的會是:
TCP → 443 port
TLS Handshake (Client Hello、Server Hello、Certificate…)
後面一大堆 Encrypted Application Data
這些 Encrypted Application Data,就是原本的 HTTP Request 和 Response,但因為被加密,所以看不見明文。
下圖是被加密的追蹤流
那要如何解密跟著我下面操作
先在一個隨便一個目錄下創建一個新資料夾
再來就是創建一個文本檔案
接下來把檔案路徑複製到google的開啟捷徑後面加一個空格 輸入--ssl-key-log-flie=你的檔案路徑
輸入完之後點套用
這樣使用完以後,我們每次訪問網站時,就會將網站對應的公鑰文件資料會保存到我們所創建的文件當中
接下來就是我們通過wireshark指向我們創建的文件
首先在wireshark上方有編輯,點開以後選首選項,打開以後左側有個選單,選擇protocols
之後下拉找到TLS
點瀏覽找到剛剛創的文件
點開啟以後
這樣重整以後,就可以重新抓取到http的內容了
追蹤流也已經可以看到完整內容
希望大家能對我的教學有所幫助,那我們下期見。