{eval=Array;=+count(Array);}
謝邀。作為一名一線研發(fā)人員,下面介紹下工作中經(jīng)常會(huì)用到的一些網(wǎng)絡(luò)抓包工具,歡迎大家留言討論。
Wireshark是一款流行的網(wǎng)絡(luò)封包分析軟件,功能強(qiáng)大??梢越厝「鞣N網(wǎng)絡(luò)封包,顯示網(wǎng)絡(luò)封包的詳細(xì)信息。提供跨平臺(tái)支持(最新版的使用QT重構(gòu),個(gè)人不是很看好),而且提供了人性化的圖形化界面支持。使用Wireshark的人必須了解網(wǎng)絡(luò)協(xié)議,否則對(duì)于界面上顯示的各種數(shù)據(jù)包是不能融會(huì)貫通甚至無(wú)法理解的。
溫馨提示:
出于安全考慮,Wireshark只能查看封包,而不能修改封包的內(nèi)容,或者發(fā)送封包。
老牌抓包神器,在Linux系統(tǒng)中使用居多,可以將將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包完全截獲下來(lái)提供分析,是開(kāi)發(fā)人員、運(yùn)維人員的常用工具。無(wú)圖形化界面,只提供命令行支持,這無(wú)疑增大了上手難度,當(dāng)然,正是由于這一點(diǎn),才會(huì)提供給我們更大的自主選擇。
溫馨提示:
tcpdump使用需要root權(quán)限,因此如果你在公網(wǎng)使用tcpdump后未刪除,直接放置一款擁有root權(quán)限的tcpdump,這無(wú)疑是在挑釁某些hacker的能力。切忌,網(wǎng)絡(luò)安全無(wú)小事!
使用 C# 編寫的HTTP抓包工具。它使用靈活,功能強(qiáng)大,支持眾多HTTP數(shù)據(jù)包的抓取和分析,是 Web、移動(dòng)應(yīng)用的開(kāi)發(fā)調(diào)試過(guò)程中經(jīng)常使用到的工具。
它能記錄并檢查所有客戶端與服務(wù)端的HTTP/HTTPS請(qǐng)求,能夠設(shè)置斷點(diǎn),篡改及偽造Request/Response的數(shù)據(jù),修改Hosts,限制網(wǎng)速,HTTP請(qǐng)求性能統(tǒng)計(jì),簡(jiǎn)單并發(fā),接口測(cè)試。唯一的缺點(diǎn)就是只支持Windows,安裝使用過(guò)程需要net的支持。
一款A(yù)ndroid設(shè)備免費(fèi)的抓包軟件,無(wú)需Root,直接打開(kāi)即可使用。最大的亮點(diǎn)在于可以指定固定APP進(jìn)行數(shù)據(jù)包抓取。
Charles通過(guò)代理服務(wù)器,來(lái)截取電腦或者瀏覽器的網(wǎng)絡(luò)請(qǐng)求,從而達(dá)到分析抓包的目的。該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用。
唯一的缺點(diǎn)就是收費(fèi)。
Chrome瀏覽器默認(rèn)支持,無(wú)需多帶帶安裝。搞前端的小伙伴應(yīng)該會(huì)經(jīng)常用到??梢院芊奖愕目吹矫看蜨TTP請(qǐng)求和響應(yīng)的詳細(xì)信息,查看每個(gè)資源的請(qǐng)求響應(yīng)時(shí)間等。對(duì)于分析網(wǎng)絡(luò)問(wèn)題,解決問(wèn)題很實(shí)用。
本文為作者“一個(gè)程序員的奮斗史”悟空問(wèn)答原創(chuàng)文章,未經(jīng)允許轉(zhuǎn)載、抄襲必究!
幾乎所有瀏覽器都提供了抓取數(shù)據(jù)包的功能,因?yàn)闉g覽器為抓包提供了一個(gè)專門的操作界面,因此這種抓包方式也被稱為“控制臺(tái)抓包”。本節(jié)以 Chrome 瀏覽器為例進(jìn)行抓包演示。
控制臺(tái)抓包指的是利用瀏覽器開(kāi)的發(fā)者調(diào)試工具抓取客戶端與后端服務(wù)器交互的數(shù)據(jù),它能夠?qū)⒕W(wǎng)絡(luò)傳輸中發(fā)送與接收的數(shù)據(jù)進(jìn)行截獲、重發(fā)和編輯。
控制臺(tái)抓包非常適合于 POST 請(qǐng)求類型。我們知道,POST 請(qǐng)求使用 Form 表單向服務(wù)器提交數(shù)據(jù),通過(guò)抓包可以獲取 POST 請(qǐng)求體的數(shù)據(jù)以及相應(yīng)參數(shù),從而對(duì)響應(yīng)內(nèi)容進(jìn)行分析。下面以有道翻譯(http://fanyi.youdao.com/)為例,講解如何進(jìn)行控制臺(tái)抓包。
控制臺(tái)界面
關(guān)于開(kāi)發(fā)者調(diào)試工具,您應(yīng)該不會(huì)感到陌生,它除了有檢查網(wǎng)頁(yè)結(jié)構(gòu)、元素構(gòu)成的功能外,還有許多其他重要功能,比如抓取數(shù)據(jù)包。下面對(duì)如何抓包做重點(diǎn)介紹。
首先訪問(wèn)有道翻譯網(wǎng)站,然后使用快捷鍵 F12 打開(kāi)控制臺(tái),并找到Network選項(xiàng)卡,最后在有道翻譯的輸入框內(nèi)輸入“hello world”進(jìn)行翻譯,控制臺(tái)主界面如下所示:
圖 1:開(kāi)發(fā)者調(diào)試工具
下面對(duì)上圖 1 中控制臺(tái)的常用選項(xiàng)做簡(jiǎn)單介紹:
1) NetWork
該選項(xiàng)主要用于抓取網(wǎng)絡(luò)數(shù)據(jù)包,比如查看請(qǐng)求信息、響應(yīng)信息等。它有三個(gè)常用選項(xiàng)卡,分別是 All、XHR、JS,其作用如下:
2) Sources
該選項(xiàng)主要用于查看頁(yè)面的 HTML 、JavaScript 、CSS 的源代碼,除此之外,最重要的是它還可以調(diào)試 JS 源代碼,可以給 JS 代碼打斷點(diǎn)調(diào)試,有助于分析爬蟲程序中的一些參數(shù)。
3) Console
交互模式,能夠執(zhí)行 JavaScript 代碼,一般用于對(duì)當(dāng)前程序中 JS 代碼進(jìn)行測(cè)試,同時(shí)也可以查看 JavaScript 對(duì)象,或者調(diào)試日志、異常信息等。
4) Application
該選項(xiàng)用于查看、修改本地存儲(chǔ)(Local Storage)以及會(huì)話存儲(chǔ)(Session Stroage)等,同時(shí)它也可以用來(lái)查看 Cookie 信息。
Cookie 是網(wǎng)站服務(wù)器為了辨別用戶身份,而儲(chǔ)存在客戶端瀏覽器上一段加密字符串。某些網(wǎng)站需要用戶登錄后才可以看到相應(yīng)的數(shù)據(jù)。如果想要爬取此類網(wǎng)站的數(shù)據(jù),就需要使用 Cookie 模擬用戶登錄。
數(shù)據(jù)包抓取
有道翻譯采用了 JS 異步加載的方式獲取翻譯結(jié)果,并將該結(jié)果渲染到指定的輸出框內(nèi)。所謂異步加載,即不需要刷新頁(yè)面,就可實(shí)現(xiàn)頁(yè)面的局部渲染。對(duì)于這樣數(shù)據(jù),可以通過(guò) NetWork 的中 XHR 選項(xiàng)來(lái)抓取數(shù)據(jù)包,并選擇查看最后一個(gè)數(shù)據(jù)包,如下圖 2 所示:
圖2:抓取數(shù)據(jù)包
因?yàn)楫惒郊虞d幾乎是實(shí)時(shí)響應(yīng)的,所以當(dāng)您在輸入框內(nèi)輸入“hello world”的過(guò)程中,每輸出一個(gè)單詞都會(huì)向服務(wù)器發(fā)送一次異步請(qǐng)求(若輸出很慢時(shí),一個(gè)字母都會(huì)發(fā)送一次請(qǐng)求),除非您事先將要查詢的單詞復(fù)制好,一次性粘貼到輸入框內(nèi),只有這樣才會(huì)得到一個(gè)數(shù)據(jù)包。因此,在這里選擇了最后一個(gè)數(shù)據(jù)包進(jìn)行分析。
接下來(lái),對(duì)上圖 2 中常用選項(xiàng)做簡(jiǎn)單介紹:Headers 用來(lái)描述整個(gè)請(qǐng)求信息,Preview 用來(lái)對(duì)響應(yīng)內(nèi)容進(jìn)行預(yù)覽,Response 用于查看響應(yīng)內(nèi)容,Cookies 用于查看客戶端 Cookie 信息。
圖3:預(yù)覽響應(yīng)內(nèi)容
看變化規(guī)律
在有道翻譯的輸入框內(nèi)多輸入幾個(gè)單詞或者漢字,查看 Form Data 的變換規(guī)律。你會(huì)發(fā)現(xiàn)有些參數(shù)的值總是變化的,而有些參數(shù)值沒(méi)有變化,比如 salt、sign、lts 總是變化的,而 bv 等參數(shù)是不變化的,而參數(shù) i 代表用戶輸入的單詞。如下所示:
i: hello world #你輸入的單詞
salt: 16161405904876
sign: a6f9d57d297acc79f31b049e2a542519
lts: 1616140590487
bv: cda1e53e0c0eb8dd4002cefc117fa588
經(jīng)過(guò)分析,最終您會(huì)發(fā)現(xiàn)如下規(guī)律:lts 代表毫秒時(shí)間戳;salt 和 lts 之間存在著某種關(guān)聯(lián),因?yàn)閮烧咧挥凶詈笠粋€(gè)數(shù)字是不同的;而 sign 對(duì)應(yīng)的值是一個(gè)加密后的字符串。在下一節(jié)我們將講解如何破解有道翻譯,將它作為 API 接口實(shí)現(xiàn)在線實(shí)時(shí)翻譯。
抓包是分析請(qǐng)求、響應(yīng)數(shù)據(jù),以及監(jiān)視 HTTP(S) 通信的常用方法,它能夠幫助我們明確要請(qǐng)求的 URL、請(qǐng)求參數(shù)/參數(shù)值、Cookies,以及其他響應(yīng)信息,這對(duì)于構(gòu)建 POST 請(qǐng)求方法十分重要。
除了使用瀏覽器自帶的調(diào)試工具外,您也可以使用 Fiddler 抓包工具,這款軟件不僅適用于 Web 抓包,同樣也適用于手機(jī)移動(dòng)端抓包 。
抓包工具,最經(jīng)典的要數(shù)wireshark了。
早在十五年前,大家還有用ehterpeek,后來(lái)基本都不在用了,全部都使用wireshark了。
其實(shí)抓包工具,不需要很多,會(huì)用一個(gè)就ok了。
wireshark之前的名字叫ethereal,現(xiàn)在更名為wireshark了,它能抓什么呢?基本上你所見(jiàn)到的所有的數(shù)據(jù)通信報(bào)文,都能抓到。
這么理解吧,凡是能在網(wǎng)絡(luò)設(shè)備上轉(zhuǎn)發(fā)的報(bào)文,它都能抓得到。
抓包工具是按照協(xié)議去劃分的,不同的協(xié)議使用到的工具也不同。那么目前來(lái)說(shuō),我們最常用的是HTTP協(xié)議,有兩款非常流行的工具,就是Fiddler和Charles(通過(guò)瀏覽器也可以抓包)。因?yàn)檫@兩款工具的核心功能都是抓包,而且他們都具有相類似的功能 。所以,從需求滿足度來(lái)說(shuō),使用任意一款工具基本都能滿足我們的需求 。
無(wú)論那款工具,他們的原理都是一樣,就是在客戶端和服務(wù)端間設(shè)置了一個(gè)代理,客戶端發(fā)送的每個(gè)請(qǐng)求都會(huì)被抓包工具截取到,這樣抓包工具就可以對(duì)請(qǐng)求的報(bào)文進(jìn)行查看,篡改,重定向等操作 。
還是以HTTP請(qǐng)求為例,一個(gè)HTTP請(qǐng)求主要包括兩個(gè)部分:請(qǐng)求和響應(yīng)(見(jiàn)上圖),請(qǐng)求是客戶端發(fā)送給服務(wù)端的數(shù)據(jù)報(bào)文,響應(yīng)是服務(wù)端返回給客戶端的數(shù)據(jù)報(bào)文 。那么抓取一個(gè)請(qǐng)求的數(shù)據(jù),其實(shí)也就是抓取這兩部分的數(shù)據(jù),比如在Fiddler就是使用Inspectors這個(gè)功能就能查看 。
那么抓取到這些有什么用能 ?
以上兩個(gè)功能都是最常用的兩個(gè)功能,當(dāng)然在抓包工具中還有很多功能 。
因?yàn)閮煽罟ぞ叩亩鄶?shù)功能相同,那么這里就著重介紹一款工具的主要功能。
報(bào)文顯示-Inspectors
抓包可以說(shuō)是Fiddler的核心功能,抓包的目的主要是為了查看,那么這個(gè)功能就是查看請(qǐng)求報(bào)文的。在Inspectors中,會(huì)將報(bào)文按照不同的情況進(jìn)行分類展示,能方便更加方便和便捷的查看 。
設(shè)置過(guò)濾-Filters
常用fiddler的同學(xué),基本都會(huì)通過(guò)Filters過(guò)濾掉無(wú)關(guān)請(qǐng)求,只保留我們所關(guān)注的 。它的過(guò)濾條件也和強(qiáng)大,可以按照不同條件進(jìn)行組合過(guò)濾。
發(fā)送請(qǐng)求-Composer
我們常用抓包工具是進(jìn)行抓包的 ,但是Fiddler也支持發(fā)送請(qǐng)求。它支持不同請(qǐng)求類型的接口請(qǐng)求,同時(shí)也支持進(jìn)行批量接口的執(zhí)行,最主要的是使用此功能和抓包結(jié)合起來(lái)使用,操作起來(lái)更加方便快捷 。
性能監(jiān)控-Statistics
在fiddler中,其實(shí)也支持簡(jiǎn)單的性能監(jiān)控,但它無(wú)需腳本錄制,配置監(jiān)控等操作。你只要在APP內(nèi)進(jìn)行正常操作。它就已經(jīng)搜集到了你APP的性能數(shù)據(jù)了。
建立規(guī)則-AutoResponder
通過(guò)此功能建立不同的規(guī)則,你就可以對(duì)符合條件的請(qǐng)求修改返回?cái)?shù)據(jù)了,對(duì)地址進(jìn)行重定向等操作 。
設(shè)置斷點(diǎn)-Breakpoints
設(shè)置斷點(diǎn)可以將發(fā)送過(guò)來(lái)的請(qǐng)求暫停,然后可改請(qǐng)求,可改響應(yīng),想讓它返回啥它就能返回啥 。 Fiddler的斷點(diǎn)功能非常強(qiáng)大,支持多處設(shè)置,多種場(chǎng)景的使用 。
命令執(zhí)行-QuickExec
這個(gè)輸入欄里可以輸入很多命令,這些命令雖然也可以通過(guò)操作實(shí)現(xiàn),但是給了我們更多的選擇 。
自定義功能-FiddlerScript
如果說(shuō)上面的這些功能還不能夠滿足你的需求,那就使用FiddlerScript來(lái)定制你的個(gè)人功能吧,因?yàn)橥ㄟ^(guò)它幾乎可以實(shí)現(xiàn)fiddler支持的任何功能 ,就是這么的強(qiáng)大 。
如果你說(shuō)的是網(wǎng)絡(luò)的抓包工具,我來(lái)下吧。我了解到的有Wireshark,Charles,F(xiàn)iddler,QPA,SnifferPro,Snoop,Tcpdump等等,不同的抓包工具各有特色,但基本原理都差不多,可以抓取到達(dá)你電腦上MAC層的所有報(bào)文,展示給我們并可以提供各種協(xié)議分析功能,其目的是為了協(xié)助我們根據(jù)網(wǎng)絡(luò)報(bào)文分析網(wǎng)絡(luò),解決問(wèn)題。
目前使用比較廣泛的是Wireshark,也是我主用的工具,我們從下面幾個(gè)方面來(lái)了解下抓包工具具體干了什么:
抓到的報(bào)文如下,其實(shí)這里已經(jīng)顯示出了大概的報(bào)文解析出來(lái)的內(nèi)容,如TCP,UDP就是代表該報(bào)文使用的傳輸層協(xié)議。
上面一張圖顯示了報(bào)文分析的一些結(jié)果,但只是簡(jiǎn)單的結(jié)果,抓包工具還可以對(duì)報(bào)文的數(shù)據(jù)詳細(xì)分析,甚至可以詳細(xì)到報(bào)文的比特位,見(jiàn)下圖:
可見(jiàn),報(bào)文的細(xì)節(jié)一目了然的展現(xiàn)我們面前,抓包工具自帶的報(bào)文分析特性,讓我們可以簡(jiǎn)單的看懂報(bào)文,而不需要一個(gè)字節(jié)一個(gè)字節(jié)去人工分析,簡(jiǎn)直是給了我們一雙翅膀,可以大大提高效率。
網(wǎng)絡(luò)上報(bào)文十分多,各類報(bào)文紛繁復(fù)雜,看看下面的截圖,才30秒的時(shí)間,就進(jìn)來(lái)了1400多個(gè)報(bào)文。
可見(jiàn),如果從眾多的報(bào)文中找自己想要的報(bào)文簡(jiǎn)直是大海撈針,抓包工具得支持報(bào)文過(guò)濾功能,報(bào)文過(guò)濾不是說(shuō)不讓報(bào)文進(jìn)入你的電腦,而是說(shuō)工具只顯示你想看的報(bào)文,比如下面是以源IP地址等于192.168.2.105為條件進(jìn)行報(bào)文過(guò)濾:
抓包工具支持很多過(guò)濾規(guī)則,MAC地址,IP地址,傳輸層協(xié)議,等等各個(gè)方面都可以作為過(guò)濾條件。
抓包工具除了支持一般的網(wǎng)絡(luò)報(bào)文,還支持其他協(xié)議,如電話窄帶協(xié)議等。
希望看了上面那些,對(duì)你有所幫助。
風(fēng)科技用簡(jiǎn)單通俗的語(yǔ)言描述問(wèn)題的答案。
在現(xiàn)今網(wǎng)絡(luò)的世界中,不論是局域網(wǎng),城域網(wǎng)一或者廣域網(wǎng),在其中傳輸?shù)亩际且粋€(gè)個(gè)的數(shù)據(jù)包。在數(shù)據(jù)包中,有代表原木的IP地址,Mac地址,有效數(shù)據(jù)和一些其他的控制信息。
所謂的抓包工具,就是抓取這些數(shù)據(jù)包,用于幫助我們分析網(wǎng)絡(luò)故障或者做一些特殊的用途。因?yàn)閭鬏數(shù)臄?shù)據(jù)包都是按一定的規(guī)則進(jìn)行構(gòu)建的,并不是雜亂無(wú)章的。所以抓包工具可以把它們抓下來(lái),使用不同的顏色,表示不同的協(xié)議,并顯示出來(lái)根據(jù)協(xié)議規(guī)則來(lái)解析他們的意思。
目前使用廣泛的抓包工具是wireshark,他可以抓取經(jīng)過(guò)該工具所在的電腦上的的數(shù)據(jù)包,幫助我們進(jìn)行網(wǎng)絡(luò)的分析。他還有強(qiáng)大的過(guò)濾功能,以便可以在成千上萬(wàn)的數(shù)據(jù)包中過(guò)濾出我們想要的數(shù)據(jù)包,并且使用規(guī)則也相對(duì)來(lái)說(shuō)簡(jiǎn)單。
0
回答0
回答0
回答0
回答0
回答0
回答7
回答0
回答0
回答0
回答