从本地上传一个文件到百度云,使用wireshark进行抓包,应该如何制定过滤规则才能准确的抓到和上传文件有关的包?
4条回答 默认 最新
- oXiaoXiong2000 2018-06-02 14:03关注
wireshark过滤器简要介绍
捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。图 2
显示过滤器(DisplayFilters):在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改。
图 3
下面我就显示过滤讲一些比较实用的规则,介绍的规则都是用http做举例,其他的协议类似。
1. 直接协议过滤
针对协议的过滤,例如:http、arp、tcp、udp等。这种过滤是最简单的过滤方式,例如我要去抓取某个http请求的数据包,这样最直接,能直接看到网络请求和回复。这种过滤方式直接使用协议名称就可以进行过滤。如果对协议不了解,请看我的另一篇文章,《网络七层模型及各层协议》图 4
有的人可能会问,图片中过滤的还http协议的包,怎么还有SSDP的包,你可以百度一下SSDP就知道了。
图 5
- 值比较过滤 值比较使用到协议的属性值。也许有些人要问:什么是协议属性。你可以直接在过滤窗口输入”http.”,wireshark就会自动提示你接下来需要输入的属性值,你将会看到一列属性。 我们可以通过简单的语句来做过滤。例如: http.accept 注释:表示过滤http协议中存在accept头的包
图 6
使用比较运算符,wireshark提供了六种比较运算符:==,!=,>,>=,<,<=。对应的英文也能实现相同功能,对应关系如下表:
图 7
数字部分可以使用十进制,八进制,十六进制方式。表达样式可供多种选择:
ip.len le 1500
ip.len le 02734
ip.len le 0x436
eth.dst == ff:ff:ff:ff:ff:ff
eth.dst == ff-ff-ff-ff-ff-ff
eth.dst == ffff.ffff.ffff
ip.addr == 129.111.0.0/16
http.request.uri == “http://www.wireshark.org/”举个例子:
http.accept == “XXX” 注释:XXX表示accept可能出现的字符串,最常用的是*/*图 8
其他协议,其他属性类似,大家可以按照上述方式平时多练习,就能熟练记住各个协议的使用场景。
- 表达式组合过滤 说到表达式组合过滤,需要使用到逻辑运算符
图 9
使用表达式组合过滤,可以更准确的拿到自己想要的网络包。在使用组合过滤时,必须深刻理解这些符号的含义。
举个例子:
图 10
注意:在使用!=比较符结合eth.addr,ip.addr,tcp.port,udp.port等使用时,某些情况下可能无法达到你的预期。
举个例子:
我们经常使用ip.addr == 1.2.3.4来过滤网络包的IP地址中包含1.2.3.4地址的包。那么如何过滤网络数据包中不包含1.2.3.4这个地址的包呢,自然而然我们就会想到使用ip.addr != 1.2.3.4。但是,这个表达式可能不会得到你预期的结果。
这个表达式的含义是:包含名字为ip.addr,但值不等于1.2.3.4数据的包。众所周知,一个网络包中包含两个ip地址:源地址,目的地址。大部分情况下(自己发给自己除外),源地址和目的地址是不同的,那么肯定会满足有一个值不等于1.2.3.4。所以这个过滤表达式没有达到我们的预期。那么该如何写我们想要的表达式呢?
如果想达到我们的期望,应该这么写:!(ip.addr == 1.2.3.4),有个图可能更好理解:图 11
解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!