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