本文參考:charles 抓包手機
charles經常會進行手機上的網頁抓包,比如去copy別人網站圖片或腳本的時候o(∩_∩)o ;
手機抓包的原理,和PC類似,手機依靠charles與服務端進行對話;
目標:把手機的網絡委托給charles進行代理;
手機抓包設置,需要進行3步;
第一步,在charles里設置允許手機聯網的權限;你需要把charles設置為允許的狀態並且設置允許的端口號,這樣手機端才能正常的接入;
第二步,把手機按照charles的IP和端口進行配置;
第三步,手機配對成功后,charles還會彈窗是否允許;(charles雖然開放了端口,但並不知道是那一台手機會配入,此窗口起到提示和安全防護的作用;)
上面的三步,有點類似HTTP的握手原理,雙方都保證正常通信后,就可以愉快的玩耍了;
第一步:設置charles為允許狀態,並設置好接入端口;
在Charles的菜單欄上選擇“Proxy”->“Proxy Settings”,填入代理端口8888(注意,這個端口不一定填寫8888,也可以寫別的端口,但是需要記住這個段擴,因為這里設置的允許接入的端口,手機端配置的時候需要用到),並且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的設置。如下圖;
需要找到charles的本機IP;
點擊HTLP -> local IP Address 可以看到當前的本機IP地址;
當然,你也可以在終端打開查看,比如window,cmd下;輸入ipconfig可以查看本機的IP
此時我們可以看到,charles允許手機接入的IP和端口是 192.168.0.103:8888
此時如果你手工在瀏覽器輸入 這個HOST會發現charles會提示一個窗口問你是否允許接入;
第二部:把手機按照charles的IP和端口進行配置;
手機鏈接wifi,wifi的HTTP代理選擇手動那項(安卓類似)
在iPhone的 “設置”->“無線局域網“中,可以看到當前連接的wifi名,通過點擊右邊的詳情鍵,可以看到當前連接上的wifi的詳細信息,包括IP地址,子網掩碼等信息。在其最底部有“HTTP代理”一項,我們將其切換成手動,然后填上Charles運行所在的電腦的IP,以及端口號8888
第三步,手機配對成功后,charles彈窗詢問是否允許;
設置好之后,我們打開iPhone上的任意需要網絡通訊的程序,就可以看到Charles彈出iPhone請求連接的確認菜單
如上圖的彈窗,點擊允許即可;此時已經配對成功,開始愉快的抓包吧;
比如此時,訪問zhubangbang.com
就可以電腦上就抓到訪問的資源了;
因為本站用的是SSL,所以如果您的charles沒有配置過,是抓取不到HTTPS這種加密協議的內容的;
如果需要抓取HTTPS網站的資源,請查看 Charles的HTTPS抓包方法及原理
注意:需要明白一個可能存在的弊端,如果你把手機的上網相關事情委托給了charles,那么當charles出錯或者沒有開啟的時候,此時手機必定沒有辦法正常上網;這個一定要了解,因為很多人把手機的IP委托給charles進行代理后,第二天早晨上本的時候,手機wifi會默認鏈接你常用的高清度wifi;而此時的wifi的設置里面可能已經委托給charles了,但是此時電腦剛沒有開charles或者重啟后ip變動等;造成charles無法正常使用;由此而導致了無法上網的問題;
注意charles此種捕獲方式,只能捕獲發出請求的資源,如果是APP里,內部的代碼和資源,因為沒有向服務器發情請求,所以這是抓不到的;
判斷是不是調用內部資源,你可以把手機的網絡給斷了,如果此時還可以正常的顯示,說明該資源是寫在APP內部的,通過代理的方式是抓不到的;
代理的原理詳見“抓包工具Charles的使用教程”里面的原理圖介紹;
本文參考:https://www.axihe.com/