感謝Charles,讓Max解鎖中間人攻擊(Man-in-the-middle attack,縮寫:MITM)的成就,終於可以讓 https 加密的世界重新回到 http 明碼的世界。
傳統的網路監聽(Sniffer)技術遇到的問題是SSL的出現,傳輸的封包被加密,無法直接監聽到封包裡的內容。使用Charles為我們便利地讓與遠端伺服器之間的傳輸 變的透明可以觀看其內容。
這篇文章要分享Max怎麼使用Charles查看https的封包內容。
Max測試情景是Charles用的是 macOS 的版本,在Android 手機的WiFi 裡設定 proxy 連到 macOS 的 Charles,並在 Android App 裡與遠端主機進行網路資料傳輸。
Max的環境:
- 作業系統:macOS 10.15.7
- Charles: ver 4.5.6
- Android手機:Mi A1 (Android 9)
另外有用一隻手機分享熱點,讓 macOS 和 Android 手機都在同一個 LAN 裡。
實作步驟如下:
1:下載和安裝Charles
官方版下載地址:
https://www.charlesproxy.com/download/
附註:
- 官方版只有30天免費使用期限。
- 安裝完打開的過程中,會彈出一個彈窗,問你是否grant privilege,要點擊「grant privilege」按鈕,這一步是授權,願意讓Charles去監聽你的瀏覽器請求。
2:安裝Charles Root Certificates
開啟 Charles 後,可以左欄很多的 unknown,點下去後可以看到 Notes:
SSL Proxying not enabled for this host
解法,點 menubar -> Help -> SSL Proxying -> Install Charles Root Certificate
接著使用 spotlight 去開啟 Keychain Access 的 App,會看到有一個紅色的X,點2下開啟。
在第一個欄位選擇「Always Trust」
這時候就會變色綠色了,沒有紅色X。
3:設定 SSL Proxying setting
在還沒設定 SSL Proxying setting 會顯示下面的Notes:
SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
點 menubar -> Proxy -> SSL Proxying setting 裡按”Add” 按鈕,增加我們的domain:
4:在Android / iOS 手機下載設定檔
在手機的瀏覽器裡,連到下面網址,下載並安裝設定檔。
http://charlesproxy.com/getssl
接著在 Android 的 Wi-Fi 的設定的地方,去設定 proxy host 和 port 為 macOS 的 IP(主機名) 和 port(端口) 即可。
不知道 macOS 的 IP address 可以在 macOS 的 Charles 裡點 menubar -> Help -> Local IP Address.
port(端口) 預設值是 8888,想修改的話,在 Charles app 點 menubar -> Proxy -> Proxy Settings 就可以了。
以上 4個步驟就結束了,附上讓 https 變明碼的執行畫面:
^_^)y 耶~ 明碼!
相關文章
Charles Proxy macOS setup guide
https://medium.com/@yash3x/charles-proxy-macos-setup-guide-cfde50262b91
Charles的下载安装及使用
https://www.jianshu.com/p/912a9e15b174
Charles on Windows + Android 查看https封包
https://medium.com/@NorthBei/charles-on-windows-android-%E6%9F%A5%E7%9C%8Bhttps%E5%B0%81%E5%8C%85-fe6f2e6cc507
透過 Charles Proxy 工具,查看 SSL 連線的 Request 與 Response 資料
https://jzchangmark.wordpress.com/2015/05/24/%E9%80%8F%E9%81%8E-charles-%E5%B7%A5%E5%85%B7%EF%BC%8C%E6%9F%A5%E7%9C%8B-ssl-%E9%80%A3%E7%B7%9A%E7%9A%84-request-%E8%88%87-response-%E8%B3%87%E6%96%99/
Using Charles Proxy to Debug Android SSL Traffic
https://medium.com/@hackupstate/using-charles-proxy-to-debug-android-ssl-traffic-e61fc38760f7