charles抓不到餓了么的https的包 技術上如何實現的?

以前可以抓到的現在就抓不到了 餓了么首頁也顯示不出
請問如何實現的?


伺服器配置的證書被打包到了客戶端程序,客戶端校驗伺服器返回的https證書的時候會先和本地證書做匹配。

Charles抓https的包其實就是中間人攻擊,對客戶端偽裝成服務端,對服務端偽裝成客戶端。用Charles抓包的時候在手機上信任的證書就是Charles的https證書,如果客戶端做了類似餓了么的操作,打包了真實伺服器的證書,那麼證書校驗的時候會發現,從伺服器返回的證書和本地證書不一致,握手就不會成功,自然抓不到包了。


在抓取摩拜單車的數據的時候遇到過這個問題。

原因:客戶端對 SSL 證書進行了檢測

用 charles 進行 https 的抓包的時候本質上是作為一個中間人代理用自己生成的 SSL 證書來完成 https 請求的過程,這樣就導致客戶端接收到的 SSL 證書其實是一個假的,所以客戶端不認這個證書

解決方法嘛。。。。當然是從脆弱的 Android App 入手啦,想辦法反編譯 餓了嗎 Android 客戶端並將你的 SSL 證書加入到他的可信證書裡面,就可以達到抓包的目的了

不過上面這種方法難度還是很大的,所以應當另闢蹊徑,從別的地方入手。。比如一些脆弱的客戶端,Web,微信小程序。。。嘿嘿嘿你懂的


這不就是本地代理嗎? 哈哈

先佔個坑 火車不便回答


做了ssl pinning了,其實就是指定了一個keystore,裡面只有它選的根證書。而以前是用系統的,用戶導入的證書也會被包含在裡面。


這玩意不是個中間人攻擊嗎。。。直接不信任你的證書就行了


做了證書檢測,禁止中間人代理


有安全、前端、後端的大神給解釋下


推薦閱讀:

TAG:前端開發 | HTTPS | 餓了么網上訂餐 | 抓包 |