抓包工具
1.1 常用抓包工具
常用的抓包工具有:Wireshark、Fiddler、Charles。
Wireshark、Fiddler、Charles的優缺點:
①Wireshark是一種在網絡層上工作的抓包工具,不僅自帶大量的協議分析器,而且可以通過編寫Wireshark插件來識別自定義的協議。雖然Wireshark功能強大,但是卻並不能解決所有的抓包問題,其原因在於:Wireshark工作在網絡層;如果計算機配置了IPSec傳輸層加密,則在網絡層的流量都已經被加密,什么也看不到。當今大量網絡接口使用HTTPS加密,Wireshark不能抓取到HTTPS流量的明文內容。
②Fiddler和Charles工作在應用層上,作為其他程序的HTTP代理服務器。它可以直接抓取並分析HTTP流量,也可以作為“中間人”抓取並分析HTTPS流量。
1.2 參考資料
https://www.cnblogs.com/kristin/p/8445141.html
https://blog.csdn.net/sb___itfk/article/details/45250771
2.1 wireshark使用
2.1.1 抓取數據包
- 選擇抓包網口,選擇抓包網口有兩種方式
l 第一種,啟動wireshark后,直接雙擊以太網,就會開始抓包。
l 第二種,啟動wireshark后,點擊捕獲—>>選項。在彈出框中選擇網卡以及配置過濾條件。
- 停止抓包,點擊停止后,可以將捕獲的數據包保存。
2.1.2 常用過濾、分析
捕獲的數據包比較多,可以通過一些語法進行篩選。
- 根據ip地址進行篩選,語法如下ip.addr==192.168.0.121。
- 根據http.request過濾所有http請求
- 根據關鍵字查詢
2.1.3 查看捕獲的數據
2.2 Fiddler使用
2.2.1 抓取數據包
2.2.2 搜索會話
按住ctrl+F,輸入關鍵字,點擊find session,進行搜索
2.2.3 查看會話
選擇一個會話,根據結果的請求/響應的不同數據類型,顯示會話。
2.2.4 設置代理
- Tools-> Fiddler Options
選中"Allow remote computers to connect". 是允許別的機器把HTTP/HTTPS請求發送到Fiddler上來
記住這個端口號是:8888,通過ipconfig查看本機的ip,如本機ip為192.168.2.11
- 在手機上進行代理設置
- 下載Fiddler的安全證書
使用android手機的瀏覽器打開:http://192.168.2.11:8888, 點"FiddlerRoot certificate",然后安裝證書。
安裝完成后,就可以在fiddler上看到手機的HTTP請求
2.2.5 抓取HTTPS數據包
l Fiddler抓取HTTPS數據包過程原理:
l fiddler接到客戶端的https請求,fiddler將請求轉發給服務器
l 服務器生成公鑰證書,返回給fiddler;fiddler攔截下真的公鑰證書,並生成偽造的公鑰證書給客戶端;
l 客戶端使用偽造的公鑰證書加密共享密鑰發送給fiddler,fiddler使用偽造的私鑰解密獲取共享密鑰
l fiddler將解密后的共享密鑰,使用真正的公鑰加密發送給服務器端,服務器使用共享密鑰與fiddler通信
l fiddler使用共享密鑰與客戶端通信
- 設置抓取HTTPS,PC機安裝根證書:
Tools->options->HTTPS->capture https connects->decrypt https traffic->ignore server certificate errors(unsafe)->actions->trust root certificate->確定->OK
- 安裝根證書后,可以點擊Actions->open windows certificate manager查看安裝到系統的根證書
2.3 Charles使用
2.3.1 抓取數據包
啟動Charles后,就開始自動抓包。在filter中輸入內容,可以進行過濾。
如果抓不到,查看proxy下面選擇的系統是否正確。Windows系統選擇windows proxy
2.3.2 查看會話
2.3.3 設置斷點
找到需要攔截的接口,右鍵點擊breakpoint
Proxy—>>breakpoint—>> settings,可以看到已設置的斷點,也可以在此進行斷點設置,如新增斷點,只攔截斷點的請求/響應,
也可以設置模糊的path 如path寫成*login*,即所有包含login的接口
設置斷點后,就可以開始編輯請求/響應。
2.3.4 弱網測試
點擊Proxy-- >> Throttle Settings-- >> Enable Throttling,可以設置網絡,進行弱網測試。
2.3.5 設置代理
點擊Tool-- >> Map Remote -- >> Enable Map Remote,設置代理,可以將一個服務器的請求全部轉發到另一個服務器上。
效果如下圖:
應用場景:如臨時變更測試服務器,客戶端不需要重新打包。
2.3.6 設置從本地文件代理
點擊Tool-- >> Map Local -- >> Enable Map Local,設置所有請求,或者部分請求的響應直接從本地文件代理,返回本地文件中的內容。效果如下圖。
---------全文完----------