charles抓不到餓了么的https的包 技術上如何實現的?
12-27
以前可以抓到的現在就抓不到了 餓了么首頁也顯示不出
請問如何實現的?
伺服器配置的證書被打包到了客戶端程序,客戶端校驗伺服器返回的https證書的時候會先和本地證書做匹配。
Charles抓https的包其實就是中間人攻擊,對客戶端偽裝成服務端,對服務端偽裝成客戶端。用Charles抓包的時候在手機上信任的證書就是Charles的https證書,如果客戶端做了類似餓了么的操作,打包了真實伺服器的證書,那麼證書校驗的時候會發現,從伺服器返回的證書和本地證書不一致,握手就不會成功,自然抓不到包了。
在抓取摩拜單車的數據的時候遇到過這個問題。
原因:客戶端對 SSL 證書進行了檢測
用 charles 進行 https 的抓包的時候本質上是作為一個中間人代理用自己生成的 SSL 證書來完成 https 請求的過程,這樣就導致客戶端接收到的 SSL 證書其實是一個假的,所以客戶端不認這個證書
解決方法嘛。。。。當然是從脆弱的 Android App 入手啦,想辦法反編譯 餓了嗎 Android 客戶端並將你的 SSL 證書加入到他的可信證書裡面,就可以達到抓包的目的了
不過上面這種方法難度還是很大的,所以應當另闢蹊徑,從別的地方入手。。比如一些脆弱的客戶端,Web,微信小程序。。。嘿嘿嘿你懂的
這不就是本地代理嗎? 哈哈
先佔個坑 火車不便回答
做了ssl pinning了,其實就是指定了一個keystore,裡面只有它選的根證書。而以前是用系統的,用戶導入的證書也會被包含在裡面。
這玩意不是個中間人攻擊嗎。。。直接不信任你的證書就行了
做了證書檢測,禁止中間人代理
有安全、前端、後端的大神給解釋下
推薦閱讀: