{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
回答