手把手教你進行Python網絡爬蟲中的Charles+Postern抓包
大家好,我是碼農星期八,人稱法外狂徒張三。
為什么要說使用Charles+Postern
在實際抓手機App包場景中,有很多種方案,經典的就是Fiddler,但是Fiddler會有一個問題,如果App設置了不走代理這個選項,那Fiddler就不行了。
為什么Charles+Postern可以呢?
是因為Charles就沒有直接監聽到App,Charles是監聽到了Postern上,Postern就是一個vpn,所以App設置不走代理也沒用,Postern照樣能監聽到,然后Postern再轉發到Charles上,這樣就完成了抓包。
但是雙向驗證除外,雙向驗證Charles需要添加證書,后面再說。
當然,還有更好的方案,r0capture hook抓包了解一下?
我的環境
pixel 2 Android 8版本(已root)
Magisk 23.0版本
Xposed 3.1.5版本
Charles配置
Charles環境要求
- JDK
- 啟用超級管理員
- 關閉防火墻
下載
Charles下載地址:
https://www.charlesproxy.com/download/
安裝
下一步->下一步即可。
安裝成功打開。
激活
注冊碼生成地址:
https://www.zzzmode.com/mytools/charles/
激活Charles。
在Help->Registered輸入key和生成的激活碼即可。
設置代理
點擊Porxy Settings。
注意:此時我的Windows Proxy是去掉對勾的,表示不抓PC端。
設置監聽端口:
配置SSL代理
點擊SSL Proxying Settings:
添加代理,*.*即可:
到現在為止,Clarles就設置完畢。
Postern
Postern簡介
Postern并不是抓包工具,它是一個代理工具。
它可以將http請求轉為socket,并且包轉發到Charles上,這樣就可以抓到更多的包。
配置代理規則
添加代理服務器
留下一個選項就行,其它的刪掉即可。
配置規則
添加規則
打開/關閉Postern
如果Charles有提示出東西,一定要點擊Allow。
然后就可以愉快的抓包了。
但是此時只能抓http的包,要想抓hppts的包,還需要設置證書才行。
配置證書
保存證書到指定位置
點擊Save Charles Root Certi...
選擇一個路徑保存。
證書推送到手機上
將保存的證書推送到手機上。
adb push C:\Users\Ti\Downloads\1.pem /sdcard/1.pem
成功推送到手機上。
手機端安裝證書
點擊從存儲設備安裝證書。
點擊證書,安裝。
證書名字隨便寫。
安裝好之后是可以在信任的憑據中看到的。
查看用戶證書。
證書存放目錄
系統證書路徑 /etc/security/cacerts
用戶證書路徑 /data/misc/user/0/cacerts-added
雖然此時證書已經安裝完成,但是可能對APP抓https還是失敗的。
因為Android7以后,只信任系統證書,所以還需要將用戶證書移動成系統證書。
移動證書
這里使用Magisk的Move Certificates模塊來安裝證書。
直接安裝即可。
然后重啟手機,你就會發現證書移動成功。
現在,到現在就配置成功了,打開Postern,就可以開心的抓https啦!
Charles和Fiddler的比較
Fiddler雖然也可以完成對手機的抓包,但是如果App設置了不走代理,那Fiddler就失敗了。
并且Fiddler需要修改手動wifi的代理,但是Charles就不需要,只需要配置好Postern和Charles的連接就好,并且可以對絕大部分的App進行抓包,不使用代理時,直接關閉Postern即可!
總結
目前來說,Fiddler和Charles都是很流行的,但是相對來說,還是Charles+Postern適用范圍更廣一些,并且數據更好看一點!