charles如何抓取https資料報的?

時間 2021-05-06 17:24:38

1樓:老白兔

原理高票已經解釋了,就是一種中間人攻擊。

1、官方說明

SSL Certificates

說明了iOS高版本和Android高版本需要做的一些特殊操作。

2、StackOverflow

Charles proxy fails on SSL Connect Method

2樓:北雁南飛

所有自己感覺明明在手機端(Android)配置好了證書,卻抓到unknown的都應該看一下奧。

問題表現為有的https可抓(系統瀏覽器觸發),有的https不可抓(測試應用內觸發)

Android N(SDK 24)推出的安全變更,Target SDK >24 的應用預設不再信任任何系統和使用者證書,如需新增信任需單獨在AndroidManifest.xml增加配置,詳細請看上面的官方鏈結文件。

所以,對於無法抓包的問題,Android的應用開發人員可以直接通過配置清單檔案解決,但是對於需要抓取第三方應用的請求場景,這樣做顯然是不現實的,建議還是直接使用Android N(SDK 24)以下的手機來抓包吧,親測有效~

3樓:尼不要逗了

簡單的說就是中間人攻擊,也就是「man-in-the-middle attack」

先來看一下charles的document:

「Charles can be used as a man-in-the-middle HTTPS proxy, enabling you to view in plain text the communication between web browser and SSL web server.

Charles does this by becoming a man-in-the-middle. Instead of your browser seeing the server』s certificate, Charles dynamically generates a certificate for the server and signs it with its own root certificate (the Charles CA Certificate). Charles receives the server』s certificate, while your browser receives Charles』s certificate.

Therefore you will see a security warning, indicating that the root authority is not trusted. If you add the Charles CA Certificate to your trusted certificates you will no longer see any warnings – see below for how to do this.」

先說一下https使用的非對稱加密的原理。等等說非對稱加密之前還要說下對稱加密的原理。簡單來說,對稱加密就是加密解密使用同乙個金鑰。

瀏覽器和伺服器互動的話一般會動態生成乙個金鑰,所以金鑰如何交換就成了問題。

下面引入非對稱金鑰,非對稱加密主要用於金鑰交換(也叫金鑰協商),能夠很好地解決這個問題。瀏覽器和伺服器每次新建會話時都使用非對稱金鑰交換演算法協商出對稱金鑰,使用這些對稱金鑰完成應用資料的加解密和驗證,整個會話過程中的金鑰只在記憶體中生成和儲存,而且每個會話的對稱金鑰都不相同(除非會話復用),中間者無法竊取。

金鑰交換過程:伺服器的公鑰是公開的,私鑰是不公開的。瀏覽器先向伺服器取得公鑰,然後用公鑰加密自己的私鑰連同自己私鑰加密的請求一併傳送給伺服器。

伺服器使用自己私鑰解密得到瀏覽器的私鑰,使用瀏覽器的私鑰解密請求。然後再用瀏覽器的私鑰加密response傳送回伺服器。

中間人攻擊是先偽裝伺服器向瀏覽器傳送偽造的公鑰,從而取得瀏覽器的私鑰。這樣就完成的瀏覽器端的解密。伺服器端類似。

但是!!!https是可以防止中間人攻擊的,因為伺服器的公鑰是用證書的。charles偽造的證書一般瀏覽器會警告,所以我們需要將charles的證書認為可靠的。從而實現中間人。

關於iOS 9的無法使用Charles抓包的問題。

SSL Proxying with iOS 9

NSAllowsArbitraryLoads

ref: FAQs Charles Web Debugging Proxy

簡單地說,iOS的ATS是一種對安全的加強。在About ATS裡面我們可以看到ATS對證書的一些限制。現在無法使用Charles,則是因為iOS 9 認為這個連線不安全,目前的解決方案是禁用ATS。

長遠來看,要麼Charles的證書能夠是ATS眼中的『安全證書』,要麼ATS自己修改spec將Charles的證書認為是安全的,但是這兩種方法目前看來可能還需要一段時候。

如何抓取etymonline的詞根與解釋?

深海魚 剛開始學BeautifulSoup,對著API擼的。print語句裡轉碼成GBK是為了避免CMD輸出時拋ERROR。usr bin env python coding utf 8 抓取詞根與解釋 單詞 word encode gbk errors ignore decode gbk prin...

如何利用Python抓取PDF中的某些內容?

現場可程式設計邏輯 pdfminer非常簡單方便,但我在實際用的時候,經常出現轉換文字缺失的情況。個人感覺這個庫是在讀取pdf的時候遇到轉義字元處理的時候有bug,pdf2htmlex比較穩定,轉成html以後再把文字拿出來,目前做了幾百個轉換還沒錯過。 xlzd 你的問題事實上包含幾部分 將 PD...

搜尋引擎如何對抓取的內容進行分組?

夜息 感覺樓主有點概念的混亂 入索引和分類是兩碼事 入索引就是是分詞後的入庫。根據ABCD,啊哦額一等一系列term進行存放。分類是把一大堆東西A,去歸類的另外幾樣東西B上。其實本質就是就求A們和某個B的相關性。然後這個相似性又分成布林模型和潛在語義模型。布林模型很簡單,就是包含 相關 和不包含 不...