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