【網絡學習筆記】使用Wireshark抓取HTTP報文

前言

最近在學習計算機網絡知識,學習過程中使用抓包工具Wireshark抓取網絡數(shù)據包樊销,來輔助理解網絡協(xié)議相寇。

Wireshark是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包款咖,并盡可能顯示出最為詳細的網絡封包資料何暮。Wireshark使用WinPCAP作為接口,直接與網卡進行數(shù)據報文交換之剧。

目錄

文章目錄

基本使用

下載地址https://www.wireshark.org/

支持系統(tǒng):Windows郭卫、macOS

基本使用
基本使用
主要功能區(qū)

主要功能區(qū):

  1. 顯示過濾器
  2. 抓獲的封包列表
  3. 封包詳細信息
  4. 封包16進制數(shù)據

抓取HTTP報文

抓取http報文-目錄

1.開啟捕捉任務

2.瀏覽器訪問http://www.lizhengyang.cn/

3.停止捕捉任務

4.設置顯示過濾條件

開啟捕捉任務后,封包列表可能會出現(xiàn)很多無用的數(shù)據包背稼,設置顯示過濾器過濾掉冗余數(shù)據贰军。

如下圖,在顯示過濾器中輸入:http and ip.addr == 39.107.127.222 (IP地址替換為目標網站的IP)

按回車鍵蟹肘,只剩下兩個數(shù)據包:請求包词疼、響應包。

設置過濾條件

5.查看HTTP報文

在任意數(shù)據包上點擊右鍵:追蹤流-->HTTP流

彈出窗口就是完整的HTTP報文帘腹,紅色字體為HTTP請求報文贰盗,藍色字體為HTTP響應報文

查看HTTP報文

過濾器

如果不設置過濾器,會抓取很多雜亂冗余的數(shù)據阳欲,以至于很難找到自己需要的部分舵盈。使用過濾器可以幫助我們精準找到需要的信息。

過濾器分兩種:

  • 捕捉過濾器球化。只捕捉符合過濾規(guī)則的封包秽晚,其它數(shù)據不會存在封包列表中。在捕捉前設置筒愚。
  • 顯示過濾器赴蝇。用來過濾抓取后的結果,可以隨意更改過濾規(guī)則巢掺。

注意:兩種過濾器的規(guī)則語法是不一樣的句伶,不要混淆劲蜻。

捕捉過濾器

捕捉過濾器的語法與其它使用Lipcap(Linux)或者Winpcap(Windows)庫開發(fā)的軟件一樣,比如著名的TCPdump考余。捕捉過濾器必須在開始捕捉前設置完畢先嬉,這一點跟顯示過濾器是不同的。

設置捕捉過濾器的步驟是:
- 工具欄 -> 捕捉 -> 選項
- WLAN -> 捕捉過濾器中輸入規(guī)則
- 點擊開始(Start)進行捕捉

設置捕捉過濾器

過濾公式

語法: Protocol Direction Host(s) Value Logical Operations Other expression
例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128

Protocol(協(xié)議):

可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp

如果沒有特別指明是什么協(xié)議秃殉,則默認使用所有支持的協(xié)議坝初。

Direction(方向):

可能的值: src, dst, src and dst, src or dst

如果沒有特別指明來源或目的地,則默認使用 "src or dst" 作為關鍵字钾军。

例如鳄袍,host 10.2.2.2src or dst host 10.2.2.2是一樣的

Host(s)

可能的值: net, port, host, portrange

如果沒有指定此值,則默認使用"host"關鍵字吏恭。

例如拗小,src 10.1.1.1src host 10.1.1.1`相同。

Logical Operations(邏輯運算):

可能的值:not, and, or

否(not)具有最高的優(yōu)先級樱哼“Ь牛或(or)和與(and)具有相同的優(yōu)先級,運算時從左至右進行搅幅。

例如

  • not tcp port 3128 and tcp port 23(not tcp port 3128) and tcp port23相同阅束。
  • not tcp port 3128 and tcp port 23not (tcp port 3128 and tcp port23)不同。

案例

//顯示目的TCP端口為3128的封包茄唐。
tcp dst port 3128

//顯示來源IP地址為10.1.1.1的封包息裸。
ip src host 10.1.1.1

//顯示目的或來源IP地址為10.1.2.3的封包。
host 10.1.2.3

//顯示來源為UDP或TCP沪编,并且端口號在2000至2500范圍內的封包呼盆。
src portrange 2000-2500

//顯示除了icmp以外的所有封包。(icmp通常被ping工具使用)
not imcp

//顯示來源IP地址為10.7.2.12蚁廓,但目的地不是10.200.0.0/16的封包访圃。
src host 10.7.2.12 and not dst net 10.200.0.0/16

//顯示來源IP為10.4.1.12或者來源網絡為10.6.0.0/16,目的地TCP端口號在200至10000之間相嵌,并且目的位于網絡10.0.0.0/8內的所有封包腿时。
(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

//顯示目的TCP端口為3128的封包。
tcp dst port 3128`

//顯示來源IP地址為10.1.1.1的封包饭宾。
ip src host 10.1.1.1

//顯示目的或來源IP地址為10.1.2.3的封包批糟。
host 10.1.2.3

//顯示來源為UDP或TCP,并且端口號在2000至2500范圍內的封包捏雌。
src portrange 2000-2500

//顯示除了icmp以外的所有封包跃赚。(icmp通常被ping工具使用)
not imcp

//顯示來源IP地址為10.7.2.12笆搓,但目的地不是10.200.0.0/16的封包性湿。
src host 10.7.2.12 and not dst net 10.200.0.0/16

顯示過濾器

剛才抓取HTTP報文使用的就是顯示過濾器纬傲。

過濾公式

語法: Protocol . String 1 . String 2 Comparisonoperator Value LogicalOperations Otherexpression
例子: http request uri == "/index" xor ip.dst != 10.4.5.6

看到這里有是不是有點蒙,每個符號都認識肤频,但為啥要這樣組合呢叹括?

不要怕,這個公式不需要記住宵荒,熟悉一下公式的結構即可汁雷,因為Wireshark中可已通過表達式工具來動態(tài)生成規(guī)則。

動態(tài)生成過濾規(guī)則

點擊“表達式”

表達式

彈出“顯示過濾器表達式”窗口

濾器表達式窗口

上圖圈住的五個模塊對應著五個步驟:

第一步:搜索網絡協(xié)議

第二步:選擇協(xié)議(Protocol)

可以使用tcp报咳、ip侠讯、udp等位于OSI模型第2至7層的協(xié)議。點擊協(xié)議列表暑刃,可以選擇需要參與過濾的協(xié)議厢漩。

舉例:http.request.uri (http請求中的uri)

其中http為協(xié)議,request.uri是協(xié)議的子類,通過 .連接岩臣。Wireshark的官網提供了對各種 協(xié)議以及它們子類的說明溜嗜。

第三步:選擇比較運算符(Comparison operators)

英文寫法: C語言寫法: 含義:
eq == 等于
ne != 不等于
gt > 大于
lt < 小于
ge >= 大于等于
le <= 小于等于
contains contains 包含
matches matches 正則表達式匹配
in in 在指定集中

第四步:選擇比較的值

第五步:校驗規(guī)則是否合法

以上的每一步操作都會在下方輸入框自動生成過濾規(guī)則,合法的規(guī)則顯示綠色背景架谎,不合法的規(guī)則顯示紅色背景炸宵。

校驗完成點擊ok,顯示過濾器規(guī)則設置完成谷扣。

多個過濾條件

若需要通過過個條件篩選數(shù)據土全,比如:只顯示80端口和8080端口的封包。就要用到邏輯運算符(Logical expressions)抑钟,把多個條件連接涯曲。

英文寫法: C語言寫法: 含義:
and && 邏輯與
or || 邏輯或
xor ^^ 邏輯異或
not ! 邏輯非

被程序員們熟知的邏輯異或是一種排除性的或。當其被用在過濾器的兩個條件之間時,只有當且僅當其中的一個條件滿足時鞠抑,這樣的結果才會被顯示在屏幕上姥闪。
舉個例子:

//只有當目的TCP端口為80或者來源于端口1025(但又不能同時滿足這兩點)時,這樣的封包才會被顯示绰沥。
tcp.dstport 80 xor tcp.dstport 1025

案例

//顯示HTTP或UDP議封包
 http || udp

//顯示來源或目的IP地址為10.1.1.1的封包
ip.addr == 10.1.1.1

//顯示來源不為10.1.2.3或者目的不為10.4.5.6的封包。換句話說贺待,顯示的封包將會為:
//來源IP:除了10.1.2.3以外任意徽曲;目的IP:任意
//以及
//來源IP:任意;目的IP:除了10.4.5.6以外任意
`ip.src != 10.1.2.3 or ip.dst != 10.4.5.6` 

//顯示來源不為10.1.2.3并且目的IP不為10.4.5.6的封包麸塞。換句話說秃臣,顯示的封包將會為:來源IP:除了10.1.2.3以外任意;同時須滿足,目的IP:除了10.4.5.6以外任意 
ip.src != 10.1.2.3 and ip.dst != 10.4.5.6

//顯示來源或目的TCP端口號為25的封包
tcp.port == 25

//顯示目的TCP端口號為25的封包 
tcp.dstport == 25

//顯示包含TCP標志的封包
tcp.flags    

//顯示包含TCP SYN標志的封包
tcp.flags.syn == 0x02`

//顯示HTPP域名中包含'baidu'的封包
http.host contains "baidu"

結束語

至此奥此,Wireshark的基本功能和使用方法已經介紹完了弧哎。如果有錯誤的地方懇請留言指出。

參考資料

https://wiki.wireshark.org/DisplayFilters

https://wiki.wireshark.org/CaptureFilters

http://openmaniak.com/cn/wireshark.php

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末稚虎,一起剝皮案震驚了整個濱河市撤嫩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蠢终,老刑警劉巖序攘,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寻拂,居然都是意外死亡程奠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門祭钉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梦染,“玉大人,你說我怎么就攤上這事朴皆∨潦叮” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵遂铡,是天一觀的道長肮疗。 經常有香客問我,道長扒接,這世上最難降的妖魔是什么伪货? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮钾怔,結果婚禮上碱呼,老公的妹妹穿的比我還像新娘。我一直安慰自己宗侦,他們只是感情好愚臀,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矾利,像睡著了一般姑裂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上男旗,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天舶斧,我揣著相機與錄音,去河邊找鬼察皇。 笑死茴厉,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播矾缓,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼师痕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了而账?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤因篇,失蹤者是張志新(化名)和其女友劉穎泞辐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竞滓,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡咐吼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了商佑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锯茄。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茶没,靈堂內的尸體忽然破棺而出肌幽,到底是詐尸還是另有隱情,我是刑警寧澤抓半,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布喂急,位于F島的核電站,受9級特大地震影響笛求,放射性物質發(fā)生泄漏廊移。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一探入、第九天 我趴在偏房一處隱蔽的房頂上張望狡孔。 院中可真熱鬧,春花似錦蜂嗽、人聲如沸苗膝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荚醒。三九已至,卻和暖如春隆嗅,著一層夾襖步出監(jiān)牢的瞬間界阁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工胖喳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泡躯,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像较剃,于是被迫代替她去往敵國和親咕别。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容