四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

01概述

無論是開發還是測試,在工作中經常會遇到需要抓包的時候。本篇文章主要介紹如何在各個平臺下,高效的抓包。

目前的抓包軟件總體可以分為兩類:

  • 一種是設置代理抓取http包,比如charles、mitmproxy這些軟件。
  • 另一種是直接抓取經過網卡的所有協議包,其中最出名就是大名鼎鼎的Wireshark以及linux自帶的抓包軟件tcpdump

下面重點介紹一下這四個抓包工具的特點以及使用。

02wireshark

wireshark想必大多數程序員都不會陌生。wireshark在各個平臺都可以安裝使用,它可以抓取經過指定網卡的所有協議。wireshark雖然很強大,但是對初學者其實不是很友好。

這也正是由于它太強大,它可以抓取所有包,所以初學者在使用時面對茫茫數據流不知所措。初學者需要認真的去學習怎么過濾得到自己感興趣的包,但是如果不熟悉wireshark的過濾語法,要過濾數據包將舉步維艱。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

過濾語法簡單介紹

wireshark的過濾語法總結起來其實也很簡單,就是以協議開頭,后面可以跟著協議的屬性,然后加上一些判斷符號,比如contains、==、>、<等等。比如只想展示http的協議內容,則直接在過濾器輸入框中輸入http即可。

如下圖:

比如我只想看http協議的請求頭中uri包含’/api’的協議,就可以這么寫:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

如果想通過目標ip或者來源ip來過濾包,就不可以以http協議為前綴了,因為這些是ip協議的相關屬性。通過目標ip來過濾可以這么寫:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

上面表示目標機器的ip是61.135.217.100并且協議是http的包。

wireshark支持很多種協議,我們可以通過右上角的expression來打開搜索支持的協議,還可以找出協議支持的屬性,然后填入期待的值,軟件會自動為我們構建過濾語句。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

優點:

  • 功能強大,可以抓取所有協議的包
  • 抓到的包容易分析

缺點:

  • 由于線上服務器沒有GUI,只有命令行,因此無法在線上服務器使用
  • 無法分析https數據包,由于wireshark是在鏈路層獲取的數據包信息,所以獲取到的https包是加密后的數據,因此無法分析包內容。當然,我們可以對https數據包進行解密, 但是操作具有一定的復雜度,可能要消耗很多時間。

03Tcpdump

tcpdump是linux上自帶的一個抓包軟件(mac也有),功能強大,也可以抓取經過指定網卡的所有協議包。

由于是命令行工具,tcpdump抓取到的包不易于分析,一個常見的做法是將tcpdump抓到的包輸出到某個文件,然后將文件拷貝下來用wireshark分析。

一些簡單的過濾參數:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

抓包內容輸出到文件:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

之后我們可以把test.cap直接用wireshark打開,就可以很直觀的分析包了。

用tcpdump輸出cap文件包:

tcpdump-r test.cap

04Charles

Charles是一款http抓包工具,它是通過代理來實現的抓包。也就是我們在訪問網頁時需要配置代理,將代理指向Charles監聽的端口,之后我們的http請求都會發向Charles的端口,之后Charles會幫我們轉發并記錄協議內容。

Charles的使用非常簡單,配置好代理后,Charles就開始抓包了。

我們可以直接通過Charles的GUi查看包的內容:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

上圖中的unknown表示https加密后的數據,所以看到不協議的具體內容。我們可以通過安裝Charles的證書,讓Charles也可以查看https協議的具體內容。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

優點

  • 使用簡單,只需配置一下代理地址就可以
  • 要抓取https協議的配置也很簡單,只要安裝下charles的證書就可以了

05mitmproxy

mitmproxy是python寫的一款http抓包工具,雖然只支持http抓包,但是它的特性非常強大,它不僅可以抓包,還可以對請求進行攔截、重現等操作。和Charles一樣,它的原理也是基于代理,使用的時候需要設置代理指向它。

mitmproxy是命令行工具,但是也自帶了mitmweb工具,可以讓用戶在網頁上操作。另外,mitmproxy還支持用戶自行編寫插件,可以編寫腳本對請求進行處理,然后把修改后的請求發出去。

1、安裝

首先需要在機器安裝python3以及pip3.之后通過pip3安裝

pip3 install mitmproxy

如果安裝mitmproxy過程中報錯ModuleNotFoundError: No module named '_ssl',就需要安裝一下OpenSSL,然后再重新編譯安裝一下python3。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

安裝好openSSL后再執行pip3 install mitmproxy

2、使用

安裝后,直接在命令行輸入mitmproxy就會進入它的交互界面:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

這時候mitmproxy已經開始監聽8080端口(默認),接著,我們可以去瀏覽器設置代理。瀏覽器設置代理的方式有很多,這里不多做介紹。

設置完代理后,訪問瀏覽器的請求都會被發到mitmproxy上,mitmproxy根據規則對請求進行攔截(不配置攔截規則的話則都不攔截),所有經過的請求都會被輸出:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

在交互界面上可以通過快捷鍵操作請求。輸入問號’?’,可以查看快捷鍵的文檔。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

3、下面介紹一些常用的快捷鍵和功能

① 請求過濾

在請求列表交互界面,按下f鍵后,可以輸入一些過濾規則:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

具體的過濾語法可以按下’?‘鍵后,再按下方向鍵右’—>’或者l鍵。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

②請求攔截

按下i鍵后,可以對指定的請求進行攔截。按mitmproxy收到指定條件的請求時,不會立馬把它轉發出去,而是等待我們執行resume操作后,才會把請求轉發出去——在這期間我們甚至可以對請求進行手動修改。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

紅色字體表示該請求被攔截,之后我們可以按入a鍵來恢復該請求,可以輸入A鍵恢復所有被攔截的請求。

③ 查看/編輯請求

把指示光標移動到某個請求上,按回車可以查看請求的內容。或者鼠標直接點擊請求也可以。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

之后通過左右方向鍵可以查看request、response、detail等信息。

如果要編輯請求,可以在這個界面輸入e,然后會讓我們選擇編輯哪塊內容:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

之后就會進入vim編輯界面編輯相應的內容了(保存后會生效)。

④ 重發請求

mitmproxy的光標指向某個請求時,按下r鍵可以重發這個請求(重發前可以對該請求進行編輯)。

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

按下’:’鍵后,可以輸入命令,這樣我們就可以通過過濾規則批量的重發請求

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

replay.client是mitmproxy內置的一個命令,我們也可以自行編寫命令。命令的編寫可以參考官網文檔,這里不做介紹。

⑤ 插件開發

我們可以編寫插件,然后再啟動的時候指定插件,mitmproxy處理請求的時候會執行一個插件的鏈,這樣我們就可以對請求進行編輯然后再發送出去了。

借用官網的插件demo:

四大網絡抓包神器,總有一款適合你(四大網絡抓包神器,總有一款適合你的游戲)

這個方法對每一個請求進行處理,然后打印序號。通過mitmproxy -s test.py來讓插件生效。通過插件可以綁定各種連接事件。感興趣的朋友可以自行去mitmproxy官網看文檔,這里不多做介紹。

⑥ 保存抓到的請求數據

通過w快捷鍵我們可以把這次抓到的請求包保存到文件上。

通過mitmproxy -r file可以讀取以前抓取的請求信息進行分析。

優點:

  • 命令行操作,可以在無GUI界面的服務器上使用

06總 結

對于這幾個抓包神器,我總結了下使用場景:

  • 只抓http協議的話:推薦使用mitmproxy。mitmproxy豐富的功能不僅可以滿足我們的抓包需求,還可以提升我們的工作效率。比如測試可以抓包后一鍵重發請求來重現bug,開發調試的時候可以修改請求內容等等
  • 如果是在線上的沒有GUI的服務器:推薦使用tcpdump,雖然mitmproxy也可以支持命令行抓包,但是生產環境的服務器最好不要亂安裝第三方插件。另外,大多數服務器都有裝tcpdump。我們可以通過把請求的內容輸出到文件,然后拷貝會自己的電腦用wireshark分析。
  • 想要抓取http以外的協議的話:直接上wireshark。功能強大。對于Charles,感覺用了mitmproxy之后,就基本用不上Charles了。Charles好像也可以編輯后再發送,但是感覺不是很好用,可能我用的不是很熟吧。

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年5月20日 下午7:30
下一篇 2024年5月20日 下午7:42

相關推薦

国产国产成年年人免费看片| 天天躁日日躁狠狠躁一级毛片 | 免费无遮挡无码永久视频| 精品日韩欧美国产一区二区| 国产乱人视频在线播放| 黄色免费网站在线看| 在线网站你懂得| 99在线视频免费观看| 国产精欧美一区二区三区| 91视频综合网| 在线观看国产精品va| 99在线观看视频免费| 国产精品免费视频一区| aaa毛片免费观看| 国产精品极品美女免费观看| 黑巨人与欧美精品一区| 国产成人久久精品一区二区三区| 色费女人18毛片a级毛片视频| 国产热re99久久6国产精品| 青青草免费在线视频| 国产专区第一页| 色网站在线播放| 国产三级在线观看完整版| 精品一区二区三区四区| 免费在线观看污| 欧美成人鲁丝片在线观看| 亚洲国产精品综合久久久| 日韩国产成人无码AV毛片| 久久人妻内射无码一区三区| 日韩一区精品视频一区二区| 久久亚洲精品11p| 嫩小xxxxx性bbbbb孕妇| 中文字幕精品在线视频| 女人被男人桶得好爽免费视频| a级精品国产片在线观看| 国产精品亚洲一区二区三区在线 | 亚洲欧美国产五月天综合| 欧美黑人巨大videos精| 亚洲欧美日韩久久精品第一区| 日韩精品视频在线观看免费| 久久久青草青青亚洲国产免观|