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