过滤器的使用:

  可利用“&&”(表示“与”)和“||”(表示“或”)来组合使用多个限制规则,

比如“(http && ip.dst == 64.233.189.104) || dns”和ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

如果需要将某次捕获记录保存下来方便以后再分析的话则可保存为记录文件,有时候我们只想将经过过滤的记录保存下来,只要选中“Displayed”即可

技巧:File–Export Objects–HTTP 选择需要导出的包,然后点击save As按钮,用于查看后台上传和下载的文件:wireshark导出http下载或post上传的文件

HTTP分析

  TCP协议规定HTTP进程的服务器端口号为80,通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。(注意这里指的是服务器开发的端口80)HTTP服务器则在那个端口监听客户端发送过来的请求。

http——Packet Counter      http总的统计

http.request.method == "GET" http GET请求
http.response==1 http所有的响应包
http.response==1 && http.response.code==200 响应请求成功的包
http.response==1 && http.response.code==201 201 created 提示知道新文件的URL,成功请求并创建了新的资源
http.response==1 && http.response.code==304 客户端已经缓存,不带响应体
http.response==1 && http.response.code==302 客户端继续使用原有URI http.request==1 //过滤所有的http请求,貌似也可以使用http.reques
http.request.method == "GET"
http.request.method == "POST"
http.request.uri == "/img/logo-edu.gif"
http contains "GET"
http contains "HTTP/1."
// GET包
http.request.method == "GET" && http contains "Host: "
http.request.method == "GET" && http contains "User-Agent: "
// POST包
http.request.method == "POST" && http contains "Host: "
http.request.method == "POST" && http contains "User-Agent: "
// 响应包
http contains "HTTP/1.1 200 OK" && http contains "Content-Type: "
http contains "HTTP/1.0 200 OK" && http contains "Content-Type: "
一定包含如下
Content-Type: http.host==magentonotes.com 或者http.host contains magentonotes.com //过滤经过指定域名的http数据包,这里的host值不一定是请求中的域名
http.request.method==POST过滤所有请求方式为POST的http请求包,注意POST为大写 http.cookie contains guid //过滤含有指定cookie的http数据包
http.request.full_uri==” http://task.browser.360.cn/online/setpoint” //过滤含域名的整个url则需要使用http.request.full_uri
http.content_type == “text/html” //过滤content_type是text/html的http响应、post包,即根据文件类型过滤http数据包
http.server //过滤所有含有http头中含有server字段的数据包
http.request.version == "HTTP/1.1" //过滤HTTP/1.1版本的http包,包括请求和响应

  

 参考这里  十六进制截取

TCP完整分析:

  在连个连接建立的时候,SYN包里面会把彼此TCP最大的报文段长度,在局域网内一般都是1460.如果发送的包比最大的报文段长度长的话就要分片了,
被分片出来的包,就会被标记了“TCP segment of a reassembled PDU”,可以参考下图,看一下,被标记了的包的SEQ和ACK都和原来的包一致。

捕捉断开连接的数据包
tcp.window_size == 0 && tcp.flags.reset != 1

TCP三次握手:创建TCP连接
1、A端SYN=1,ACK=0 SequenceNumber=XXX
2、B端SYN=1,ACK=1 SequenceNumber=YYY Acknowledgement=XXX+1
3、A端SYN=0,ACK=1 SequenceNumber=XXX+1 Acknowledgement=YYY+1 这个TCP负载中已经可以包含业务数据了。

TCP链接撤销:
1、A端FIN=1,ACK=1 SequenceNumber=XXX Acknowledgement=YYY
2、B端FIN=1,ACK=1 SequenceNumber=YYY Acknowledgement=XXX+1
3、A端FIN=0,ACK=1 SequenceNumber=XXX+1 Acknowledgement=YYY+1

这里是Github作为Client主动发起关闭连接的请求,这里的FIN=FINish

Github 发Fin(x=6831)包; ——FIN(X)
本机收到上面的包后,做出ACK(x+1=6832)响应,跟Github说我收到了~,你别再发了; ——ACK(X+1)
你要关了,那我也准备关吧~ 于是发Fin(y=1054)包,你准备好了么?; ——FIN(Y)
Github准备好了,给出响应ACK(y+1=1055),告诉本机准备好了; ——ACK(Y+1)

TCP完整分析:

第一次握手 102
tcp.flags.syn == 1 and tcp.flags.ack == 0
第二次握手 103 重传一次 403
tcp.flags.syn == 1 and tcp.flags.ack == 1 第三次握手 ACK=1 seq=1 109-4
tcp.flags.ack == 1
&& tcp.seq==1&&tcp.ack==1&&!tcp.flags.fin==1&&!http&&tcp.len==0
不能只抓取第三次握手的数据包。 客户端发起关闭请求 104
tcp.flags.fin==1 && tcp.flags.ack==1&&ip.src==102.168.0.120
服务器响应关闭连接 94
tcp.flags.fin==1 && tcp.flags.ack==1&&ip.src!=102.168.0.120
TCP传输数据量:
!http&&!(tcp.flags.syn == 1 and tcp.flags.ack == 0)&&!(tcp.flags.syn == 1 and tcp.flags.ack == 1)&&!(tcp.flags.fin==1 && tcp.flags.ack==1)&&!(tcp.flags.ack == 1&& tcp.seq==1&&tcp.ack==1&&!tcp.flags.fin==1&&!http&&tcp.len==0)
http 第一次握手 第二次握手 第1、3次挥手 第三次握手

  

WireShark过滤解析HTTP/TCP的更多相关文章

  1. 【协议分析】Wireshark 过滤表达式实例

    Wireshark 过滤表达式实例   1.wireshark基本的语法 字符 \d          0-9的数字 \D          \d的补集(以所以字符为全集,下同),即所有非数字的字符 ...

  2. Wireshark抓包分析/TCP/Http/Https及代理IP的识别

    前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...

  3. (十八)WireShark 过滤语法

    1.过滤IP,如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1. ...

  4. wireshark过滤语法总结

    抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考.(脑子记不住东西) wireshark进行过滤时 ...

  5. wireshark过滤语法总结-重点偏移过滤

    http://chenjiji.com/post/3371.html 作者: CHAN | 发布: 2013 年 10 月 24 日 做应用识别这一块经常要对应用产生的数据流量进行分析. 抓包采用wi ...

  6. WireShark 过滤语法

    1. 过滤IP,如来源IP或者目标IP等于某个IP 例子: ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 或者 ip.addr eq 192.1 ...

  7. 【转】wireshark过滤规则

    WireShark过滤语法 1.过滤IP,如来源IP或者目标IP等于某个IP 例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.add ...

  8. Wireshark 过滤条件

    做应用识别这一块经常要对应用产生的数据流量进行分析. 抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后 ...

  9. WireShark过滤语法

    1.过 滤IP,如来源IP或者目标IP等于某个IP 例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168. ...

随机推荐

  1. Linux 修改环境变量报错

    报错如下: -bash: export: `=': not a valid identifier -bash: export: `/usr/local/sbin:/usr/local/bin:/sbi ...

  2. android 监听返回键

    android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE ...

  3. ProgressDialog的使用及逻辑处理

    一般用的情况先声明一个ProgressDialog progressShow = true;(用来判断用户是否点击了取消键) final ProgressDialog pd = new Progres ...

  4. RChain总体架构图

    RChain是我研究区块链依赖发现的和我最契合的(主要是用scala写的),在架构上吞吐率和扩展性也是最好,未来是真正有可能实现在它官网上宣称的能够承载facebook一样的规模,具有和visa一样的 ...

  5. 新版elasticsearch的插件安装

    安装 yum localinstall elasticsearch-6.1.1.rpm -y mkdir -p /elk/{data,logs} && chown -R elastic ...

  6. 解读TCP 四种定时器

    TCP 是提供可靠的传输层,它使用的方法之一就是确认从另一端收到的数据.但是数据和确认都可能会丢失.TCP 通过在发送时设置一个定时器来解决这个问题.如果当定时器溢出时还没收到确认,它就会重传该数据. ...

  7. Notepad++运行Java

    插件NppExec使用 首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境 1,安装插件NppExec:解压出来提取NppExec.dll文件放在Notepad++安 ...

  8. SpringBoot整合Redis、ApachSolr和SpringSession

    SpringBoot整合Redis.ApachSolr和SpringSession 一.简介 SpringBoot自从问世以来,以其方便的配置受到了广大开发者的青睐.它提供了各种starter简化很多 ...

  9. vsftp 的安装及配置

    安装vsftpd 直接用 yum安装,方便的很 yum -y install vsftpd #进入vsftpd目录cd /etc/vsftpd/ #Create The Virtual Users D ...

  10. Yii框架中使用mongodb扩展

    前提条件:安装了mongodb数据库 安装了mongo的php驱动 下载Yii的mongo扩展:这是YiiMongoDbSuite的1.3.6版本支持PHP Mongo驱动的版本为1.0.5及以下 下 ...