2014年7月1日 星期二

繞過 HTTPS 防禦機制


我替客人開發的應用程式,如有重要資料向服務器存取時,會利用 SSL 來進行加密。這樣數據即使被攔截,內容也因為被加密而無法看到。不過,最近發現到一個方法能突破這個防禦機制。

在研究別人的應用時,Charles 抓下來的數據因為利用 HTTPS 而只能看到一大堆亂碼。由於看不到內容,就無法進行修改。但無意中發現,有些服務器的 HTTP 及 HTTPS 會設定到相同地址。舉個例子。https://www.pacess.com/api/getContentList.php 及 http://www.pacess.com/api/getContentList.php 都指著同一個目錄同一個檔案。既然是相同的地方,亦即是說兩者的分別只在於前者有 SSL 加密,後者則沒有。那麼要觀看內容,甚至是作出修改的話,只要把 HTTPS 改為 HTTP 就行。

功能強大的 Charles 有一個「Map Remote Settings」功能可讓我們達到以上目的。實在利害!所以,要避免以上情況發生,就要把 HTTPS 及 HTTP 設定在不同的目錄。

2 則留言:

Ho Wang 提到...

其實 Charles 支援 HTTPS 的。只要在 Proxy Settings > SSL 中加入你想支援的 https 網站就可以了

Pacess HO 提到...

謝謝 Ho Wang。我很喜歡「支援」這個說法。