-
抓包分析
2019-06-23 22:23:48抓包分析 用Fiddler进行抓包分析 抓取HTTPS数据包 怕取腾讯视频评论 所谓抓包分析,就是网站的传输的数据包,数据会隐藏在网址的源代码,或者不在源代码中,所以要通过抓包分析,去抓取哪些隐藏起来的信息。 ...抓包分析
用Fiddler进行抓包分析
抓取HTTPS数据包
怕取腾讯视频评论
所谓抓包分析,就是网站的传输的数据包,数据会隐藏在网址的源代码,或者不在源代码中,所以要通过抓包分析,去抓取哪些隐藏起来的信息。
下载Fiddlers,在对应的浏览器里面安装,在高级,选择使用代理服务器。爬虫抓取工具,比如去分析淘宝的评论,在fiddler中找到评论的url,复制到文档上,并且进行分析,找到他的规律,比如actionicon为编号为多少的商品,以及页码为多少的商品,以及分析规律,用另外一个浏览器打开。看看是否为商品的评论,然后通过正则表达式,进行分析和抓取。
爬去腾讯视频的评论,用fiddler,打开评论都是uuu
其实这些都是unicode编码,发现这些数字都是uuuu里面的title,可以用引号引起来,然后前面加上u进行解码
先找到last:对应的id,然后进行爬取,再通过正则pat=匹配content,
用循环取爬去,爬取的有unicode编码,则有一些需要转换位unicode
eval(“u”+“comid”) -
tcpdump抓包分析
2017-07-10 09:33:29tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析 -
Linux_tcpdump抓包分析详解
2020-05-19 21:00:13tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。tcpdump提供了源代码,公开了...tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。1、常用网口 + IP + 端口抓取方式
sudo tcpdump -i eth3 -nq -A -vvv host 172.16.2.5 and port 8041 -w data.pcap
2、对于不出栈的包抓取
sudo tcpdump -i lo -nq -A -vvv port 8041 -w data.pcap
一、概述
顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
# tcpdump -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:53:21.444591 IP (tos 0x10, ttl 64, id 19324, offset 0, flags [DF], proto 6, length: 92) asptest.localdomain.ssh > 192.168.228.244.1858: P 3962132600:3962132652(52) ack 2726525936 win 1266
asptest.localdomain.1077 > 192.168.228.153.domain: [bad udp cksum 166e!] 325+ PTR? 244.228.168.192.in-addr.arpa. (46)
11:53:21.446929 IP (tos 0x0, ttl 64, id 42911, offset 0, flags [DF], proto 17, length: 151) 192.168.228.153.domain > asptest.localdomain.1077: 325 NXDomain q: PTR? 244.228.168.192.in-addr.arpa. 0/1/0 ns: 168.192.in-addr.arpa. (123)
11:53:21.447408 IP (tos 0x10, ttl 64, id 19328, offset 0, flags [DF], proto 6, length: 172) asptest.localdomain.ssh > 192.168.228.244.1858: P 168:300(132) ack 1 win 1266
347 packets captured
1474 packets received by filter
745 packets dropped by kernel
不带参数的tcpdump会收集网络中所有的信息包头,数据量巨大,必须过滤。
二、选项介绍
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式,可以把数据导出到文件。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
-n 不把网络地址转换成名字。
-nn 直接以IP和端口号显示,而非主机与服务器名称。
-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。
-t 在输出的每一行不打印时间戳。(-tt -ttt)
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。-s 0表示不限制长度,输出整个包。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出更详细的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。 (输出的.pcap文件可以在windows中用wireshark打开,进行进一步分析)
要让wireshark能分析tcpdump的包,关键的地方是 -s 参数, 还有要为 -w保存输出文件。
-X 以及-XX,以16进制与ASCII方式输出,即可读方式显示数据包,适合http、memcached ascii等明文传输的协议,可以看到内容;
三、tcpdump的表达式介绍
表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表 达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包 将会被截获。
在表达式中一般如下几种类型的关键字:
第一种是关于类型的关键字,主要包括host,net,port,例如 host 210.27.48.2, 指明 210.27.48.2是一台主机,net 202.0.0.0指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host。
第二种是确定传输方向的关键字,主要包括src,dst,dst or src,dst and src, 这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是 210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI (分布式光纤数据接口网络)上的特定的网络协议,实际上它是”ether”的别名,fddi和ether 具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。 其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump 将会 监听所有协议的信息包。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less, greater, 还有三种逻辑运算,取非运算是 ‘not ‘ ‘! ‘, 与运算是’and’,’&&’;或运算是’or’ ,’||’; 这些关键字可以组合起来构成强大的组合条件来满足人们的需要。
例:
tcpdump -i lo -nn -A -s 0 tcp -w /home/open/1.txt port 3306 and src host 112.142.34.24 and dst host 192.168.1.33
tcpdump -X -n -s 0 tcp port 8033 -i lo
tcpdump -A -n -x -s 0 tcp port 7430 and host 192.168.3.143
tcpdump -x -n -s 0 tcp port 9024 or 9021 or 9023 or 9020
四、输出结果介绍
下面我们介绍几种典型的tcpdump命令的输出信息
(1) 数据链路层头信息
使用命令:
#tcpdump --e host ICE
ICE 是一台装有linux的主机。它的MAC地址是0:90:27:58:AF:1A H219是一台装有Solaris的SUN工作站。它的MAC地址是8:0:20:79:5B:46; 上一条命令的输出结果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ICE. telne t 0:0(0) ack 22535 win 8760 (DF)
21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0接收该分组, eth0 >表示从网络接口设备发送分组, 8:0:20:79:5b:46是主机H219的MAC地址, 它表明是从源地址H219发来的分组. 0:90:27:58:af:1a是主机ICE的MAC地址, 表示该分组的目的地址是ICE。 ip 是表明该分组是IP分组,60 是分组的长度, h219.33357 > ICE. telnet 表明该分组是从主机H219的33357端口发往主机ICE的 TELNET(23)端口。 ack 22535 表明对序列号是222535的包进行响应。 win 8760表明发 送窗口的大小是8760。
(2) ARP包的tcpdump输出信息
使用命令:
#tcpdump arp
得到的输出结果是:
22:32:42.802509 eth0 > arp who-has route tell ICE (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)
22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该分组,arp表明是ARP请求包, who-has route tell ICE表明是主机ICE请求主机route的MAC地址。 0:90:27:58:af:1a是主机 ICE的MAC地址。
(3) TCP包的输出信息
用tcpdump捕获的TCP包的一般输出信息是:
src > dst: flags data-seqno ack window urgent options
src > dst:表明从源地址到目的地址, flags是TCP报文中的标志信息,S 是SYN标志, F (FIN), P (PUSH) , R (RST) “.” (没有标记); data-seqno是报文中的数据 的顺序号, ack是下次期望的顺序号, window是接收缓存的窗口大小, urgent表明 报文中是否有紧急指针。 Options是选项。
(4) UDP包的输出信息
用tcpdump捕获的UDP包的一般输出信息是:
route.port1 > ICE.port2: udp lenth
UDP十分简单,上面的输出行表明从主机route的port1端口发出的一个UDP报文 到主机ICE的port2端口,类型是UDP, 包的长度是lenth。
五、举例
(1) 想要截获所有210.27.48.1 的主机收到的和发出的所有的分组:
#tcpdump host 210.27.48.1
(2) 想要截获主机210.27.48.1 和主机210.27.48.2或210.27.48.3的通信,使用命令(注意:括号前的反斜杠是必须的):
#tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )
(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
(4) 如果想要获取主机192.168.228.246接收或发出的ssh包,并且不转换主机名使用如下命令:
#tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp
(5) 获取主机192.168.228.246接收或发出的ssh包,并把mac地址也一同显示:
# tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn
(6) 过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头:
tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
(7) 过滤源主机物理地址为XXX的报头:
tcpdump ether src 00:50:04:BA:9B and dst……
(为什么ether src后面没有host或者net?物理地址当然不可能有网络)。
(8) 过滤源主机192.168.0.1和目的端口不是telnet的报头,并导入到tes.t.txt文件中:
Tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt
ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
例题:如何使用tcpdump监听来自eth0适配卡且通信协议为port 22,目标来源为192.168.1.100的数据包资料?
答:tcpdump -i eth0 -nn port 22 and src host 192.168.1.100
例题:如何使用tcpdump抓取访问eth0适配卡且访问端口为tcp 9080?
答:tcpdump -i eth0 dst 172.168.70.35 and tcp port 9080
例题:如何使用tcpdump抓取与主机192.168.43.23或着与主机192.168.43.24通信报文,并且显示在控制台上
tcpdump -X -s 1024 -i eth0 host (192.168.43.23 or 192.168.43.24) and host 172.16.70.35
---------------------------------------------------------------------------------
补充:
SYNOPSIS
tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ]
[ -C file_size ] [ -F file ]
[ -i interface ] [ -m module ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file
]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -Z user ]
[ expression ]
c 设定抓多少个包后自动停止
s 指定抓每个包的前多少字节(默认56字节)
w 保存到某个文件
r 读文件
v 显示更详细
n 不显示主机名,显示IP
nn 也把端口显示为数值,否则显示端口服务名
i 指定哪块网卡
host 指定某个主机
port 指定某个端口
net 指定某个网络
tcp 指定抓tcp包
udp 指定抓udp包
ip 指定抓ip包
icmp 指定抓icmp包
src host 指定源主机
dst host 指定目的主机
dst port 指定目的端口
实例 抓164访问本地22端口的包 ,单向的
[root@stu24 ~]# tcpdump -i eth0 -n src host 192.168.0.164 and dst port 22
抓164ping本地的包
[root@stu24 ~]# tcpdump -i eth0 -n icmp and src host 192.168.0.164
当网卡工作于混杂模式里时
[root@stu24 ~]# tcpdump -i eth0 -n dst port 22 or dst port 80
有可能抓到别人的包
有个包可解决...以后说
两种条件一起抓
[root@stu24 ~]# tcpdump -i eth0 -n 'src host 192.168.0.164 and dst port 22' or 'src host 192.168.0.4 and dst port 80'二者等价
[root@stu24 ~]# tcpdump -i eth0 -n \(src host 192.168.0.164 and dst port 22\) or \(src host 192.168.0.4 and dst port 80\)
老师笔记
tcpdump -i eth0
tcpdump -i eth0 -v -n
-v 显示包含有TTL,TOS值等等更详细的信息
-n不要做IP解析为主机名
-nn不做名字解析和端口解析
更有针对性的抓包:
针对IP,网段,端口,协议
[root@ ftp]# tcpdump -i eth0 -vnn host 192.168.0.154
[root@ ftp]# tcpdump -i eth0 -vnn net 192.168.0.0/24
[root@ ftp]# tcpdump -i eth0 -vnn port 22
[root@ ftp]# tcpdump -i eth0 -vnn udp
[root@ ftp]# tcpdump -i eth0 -vnn icmp
[root@ ftp]# tcpdump -i eth0 -vnn arp
[root@ ftp]# tcpdump -i eth0 -vnn ip
[root@ ftp]# tcpdump -i eth0 -vnn src host 192.168.0.154
[root@ ftp]# tcpdump -i eth0 -vnn dst host 192.168.0.154
[root@ ftp]# tcpdump -i eth0 -vnn src port 22
[root@ ftp]# tcpdump -i eth0 -vnn src host 202.106.0.254 and dst port 22
[root@ ftp]# tcpdump -i eth0 -vnn src host 192.168.0.154 or port 22
[root@ ftp]# tcpdump -i eth0 -vnn src host 192.168.0.154 and not port 22
[root@ ftp]# tcpdump -i eth0 -vnn \( src host 192.168.0.2 and dst port 22 \) or \( src host 192.168.0.65 and dst port 80 \)
[root@ ~]# tcpdump -ieth0 -vnn -r /tmp/fil1 tcp
[root@ ~]# tcpdump -ieth0 -vnn -r /tmp/fil1 host 202.106.0.258
[root@ ~]# tcpdump -ieth0 -vnn -r /tmp/fil1 tcp
[root@ ~]# tcpdump -ieth0 -vnn -w /tmp/fil1 -c 100 -
Fiddler(二) - 使用Fiddler做抓包分析
2017-03-26 17:49:40Fiddler(二) - 使用Fiddler做抓包分析 上篇博文中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包抓取并处理HTTP请求。 抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler之后,在...<<Fiddler(一) - Fiddler简介>>中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包抓取并处理HTTP请求。
抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler之后,在浏览器中输入http://blog.csdn.net/sunhuaqiang1键入回车之后,在Fiddler的web session界面捕获到的HTTP请求如下图所示:
各字段的详细说明已经解释过,这里不再说明。需要注意的是#号列中的图标,每种图标代表不同的相应类型,具体的类型包括:
另外,注意请求的host字段。可以看到有来自多个www.csdn.net的子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。
右键单击其中的一条请求。可以选择的操作有:save(保存请求的报文信息,可以是请求报文,可以是响应报文)。例如,我们保存的一条请求头信息如下:
不仅是单条session,Fiddler还支持保存所有抓取到的session(并支持导入),这对于抓取可疑请求然后保存,并在之后随时分析这些请求是很有帮助的。
如果想要重新发送某些请求,可以选中这些请求,然后点击工具栏中的reply.就可以重新发送选中的这些请求。
左键点击单条HTTP请求,可以在右侧的tab面板中看到如下信息:1. Statistic
关于HTTP请求的性能和其他数据分析:
我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。2. Inspectors
分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。
Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。3. AutoResponder
Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将http://blog.csdn.net/sunhuaqiang1的请求拦截到本地的文件layout.html),如下图所示。
然后在浏览器中访问http://blog.csdn.net/ohmygirl,得到的结果会重定向到设置的页面中。
这刚好是本地layout.html的内容,说明请求已经成功被拦截到本地.当然也可以使用Fiddler的内置响应。下图是Fiddler支持的拦截重定向的方式:
因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证,尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。
不仅是单个url,Fiddler支持多种url匹配的方式:- I. 字符匹配 如 example可以匹配 http://www.example.com和http://example.com.cn
- II. 完全匹配 以EXACT开头表示完全匹配,如上边的例子 EXACT:http://blog.csdn.net/sunhuaqiang1
- III. 正则表达式匹配 以regex: 开头,使用正则表达式来匹配URL
如:regex:(?insx).*.(css|js|PHP)$ 表示匹配所有以css,js,php结尾的请求url。
4. Composer
老版本的fiddler中叫request-builder.顾名思义,可以构建相应的请求,有两种常用的方式构建请求:
(1)Parsed 输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookie,cache-control等头部)后execute.
这个功能的常见应用是:“刷票”(不是火车票!!),如刷新页面的访问量(基于道德和安全原因,如果你真去刷票,刷访问量,本博客概不负责)
(2)Raw。使用HTTP头部信息构建http请求。与上类似,不多叙述。5.Filter
Fiddler另一个比较强大的功能。Fiddler提供了多维度的过滤规则,足以满足日常开发调试的需求。如下图示:
过滤规则有:- a. host和zone过滤。可以过滤只显示intranet或则internet的HTTP请求,也可以选择特定域名的HTTP请求。
- b. client process:可以捕获指定进程的请求。
这对于调试单个应用的请求很有帮助。
其他更多的设置可以参考fiddler的官方文档。 -
rtmp抓包分析
2015-09-28 09:47:24rtmp交互流程抓包分析 用wireshark工具分析 -
C# 抓包分析工具 源码
2019-04-15 10:30:43C# 抓包分析工具 源码 RawSocket.cs rawSocket抓包 http抓包 -
HTTP协议抓包分析
2019-08-15 15:37:07HTTP抓包分析
本次使用的测试的网站是:http://www.people.com.cn
15 Agu 2019记下:最好是就使用http的网站来分析。因为现在很多网站都是支持的https协议。但是因为我现在也是一个小白,所以,具体他们之间的区别还不是特别清楚。所以,对于这一点以后再深究。HTTP请求报文和响应报文的结构示意图
为了方便分析我先将HTTP的请求报文和响应报文格式贴出来:图片来源于网络
请求报文分析
首先分析从我电脑上发出的一个请求,也就是这个请求:
我双击之后打开就是这样子:因为这里主要就是分析HTTP协议的东西,所以仅仅只截下了HTTP请求报文的内容。
请求行分析:- method:GET;
- URL:是一个相对的URL。是相对下面的Host来说的。两者组合就是一个完整的URL;这里联合http组合之后就是:http://www.people.com.cn/
- 版本:HTTP/1.1;
- CRLF:\r\n
首部分析:在首部中,每一个字段名最后面都是会有一个cr和lf的。所以,我就在下面的内容中就不提及这个了。
- Host: www.people.com.cn
也就是是你要访问的主机的名字; - Connection:keep-alive
值代表的意思是保持连接。这样子有利于在你访问的网页中有很多图片等其他资源的时候,可以使用同一个TCP连接接收,而不是针对每一个文件都建立一次TCP/IP的连接。这个也就是课本上面说的“持久连接”。 - Upgrade-Insecure-Request:1。
这个具体的意思我也不太清楚,要详细了解还是得自己去查;在我后面的参考资料中有提到。 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36\r\n
指明了发出请求的用户代理的浏览器的一些信息; - Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3\r\n
指明了浏览器接收对象的顺序,优先接收text/html文件,这个也是为什么每次服务器返回第一个文件是html了。 - Referer: http://www.people.com.cn/
这个代表服务器该该请求时从这个链接进来的。 - Accept-Encoding: gzip, deflate
说明该浏览器支持的编码格式,这里是压缩编码的方式。我猜想应该是服务器将浏览器请求的文件都是以压缩文件发送过来的。 - Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
指明了该浏览器支持的语言类型,支持zh-CN,zh,en。然后优先发送zh-CN和zh的语言,因为他们的权重是0.9 - \r\n 代表下面的信息就是请求体的实体部分了。
实体部分分析:下面是我的实体截图
按照理论上上来说,这里应该是一些实体的内容,但是我从抓包看到的数据却不是这个样子。可以看到箭头所指的方向,我个人感觉就是上面请求行和首部行的数据的总和而已.。在我百思不得其解的时候,在《计算机网络:自顶向下方法》中看到了这样的一句话:“使用GET方法是实体体为空,而是用post方式是才有该实体体。”所以我觉得应该是这里的是因为这里请求报文没有必要加上请求实体,所以就没有吧。但是后面响应报文的就是包含了响应实体的,通过抓包工具看到,转送过来的就是html代码。响应报文分析
接下来分析的就是这个响应请求了。
具体的内容是这样的:
响应行分析:HTTP/1.1 200 OK\r\n- Response Version: HTTP/1.1
- Status Code: 200 (这个就是那个OK的的Description)
- Response Phrase: OK
- crlf
首部行分析:
- Content-Type: text/html\r\n
就是说服务器给客户端传回来的是html的文件格式。这个也验证了请求报文中的Accept字段的值。因为那个字段表示的是浏览器优先接收的对象。的确是text/html文件排在第一个。 - Connection: keep-alive\r\n
同上 - X-Cache: HIT from PDcache-42 :www.people.com.cn\r\n
一看到Cache就想到了计组中的高速缓存Cache,和Linux内核中的热冷页。我查了一下,这里和其它Cache是一样的,就是为了增加存取效率出现的。后面的HIT就是表示命中了。具体的话还是得自己查资料看啦。后面的参考文献中也有。 - Powered-By-ChinaCache: HIT from CHN-LN-u-3OZ\r\n
这个暂时我还是一个刚刚学计网的孩子,我之后一定弄清楚,这里我就不深究了。不过查了一些文章,应该是想说这是一个CDN技术。 - ETag: W/“5d53bd8c-256d3”\r\n
Etag中有种Weak Tag,值为 W/“xxxxx”。他声明Tag是弱匹配的,只能做模糊匹配,在差异达到一定阈值时才起作用。(来自百度百科) - Content-Length: 36488\r\n
这个是返回的实体在压缩之之后的长度为36488Byte,这个长度还是可以深究,看后面参考。 - X-Cache-Hits: 21\r\n
略去 - Date: Wed, 14 Aug 2019 08:19:44 GMT\r\n
这个就是你请求的东西被服务器创建的时间。时间格式是GMT,和北京时间有点误差。 - Expires: Wed, 14 Aug 2019 08:20:44 GMT\r\n
这个就是如果你在这个时间之内去再次访问的话,得到就是缓存中的内容 - CACHE: TCP_HIT\r\n
略去 - Content-Encoding: gzip\r\n
压缩方式 - Last-Modified: Wed, 14 Aug 2019 07:51:40 GMT\r\n
你所请求的东西上次修改的时间 - age: 53\r\n
代表该响应在缓存代理中存放了53秒。 - Vary: Accept-Encoding\r\n
我的理解就是:因为客户端和服务器之间可能有1个或者多个缓存服务器。那么,有时候会将缓存服务器的内容返回给客户端。现在有这样一个情景,A和B都请求的是文件C,文件C在缓存服务器中。但是两个用户使用的浏览器支持的编码不同,A仅仅支持gzip,而B仅仅支持的是compress,那么你把文件C使用gzip压缩的给B就是不对的,因为B无法解压得到一个正确的结果。所以Vary字段就是看看到底要不要把这个文件从缓存中拿出来给A和B。 - Server: nginx\r\n
设置服务器名称 - Powered-By-ChinaCache: HIT from CMN-WH-3-D08\r\n
略去 - CC_CACHE: TCP_HIT\r\n
略去 - Accept-Ranges: bytes\r\n
表示该服务器是否支持文件的范文请求。也就是说,我不想要一整个文件,而是32Byte~1024Btye之间的文件。 - \r\n
实体体分析
按道理说应该只有箭头所指的地方才是实体体的内容,那么方框里面的内容是什么呢?目前我还是不知道。我还想要把这个实体信息复制下来看看是不是和书本上说到一样的,首先传输的是html页面,可能没有图片什么的。但是发现复制不了,所以这个还没有验证。这个是本人第一次实现抓包协议的分析,肯定有很多不足。之后如果有一些更新的话,再回来更新。
参考资料
HTTP协议常用头部实例详解(Request、Response)
https://blog.csdn.net/selinda001/article/details/79338766
Etag 和 If-None-Match
https://www.cnblogs.com/xuzhudong/p/8339853.html
【http】Keep-alive 知多少?作用?默认时长?
https://blog.csdn.net/qfzhangwei/article/details/90614253
从HTTP响应头看各家CDN缓存技术
https://segmentfault.com/a/1190000006673084
Http协议之Content-Length
https://blog.csdn.net/love_hot_girl/article/details/81163085
HTTP请求的响应头部Vary的理解
https://blog.csdn.net/qq_29405933/article/details/84315254
https://luchuan.iteye.com/blog/1058563 -
wireshark抓包分析——TCP/IP协议
2018-08-29 09:32:22在本文中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通过wireshark抓包分析。Wireshark 是最著名的网络通讯抓包分析工具。功能十分强大,可以截取各种网络封包,显示网络封包的详细信息。Wireshark下载安装,略。... -
rtmp协议抓包分析
2015-01-17 21:42:11rtmp协议抓包分析 -
网络抓包分析
2020-12-16 20:50:54网络抓包分析 1,网络抓包介绍 1、Tcpdump简介 tcpdump 命令是基于unix系统的命令行的数据报嗅探工具,可以抓取流动在网卡上的数据包。它的原理大概如下:**linux 抓包是通过注册一种虚拟的底层网络协议来完成对网络... -
TLS1.3抓包分析
2020-03-12 08:24:47一、TLS1.3抓包分析——ClientHello 抓包使用的是WireShark2.6.7,抓包内容为https://tls13.crypto.mozilla.org/(Mozilla的TLS1.3测试页面),浏览器为chrome(需开启TLS1.3),这里我先给出抓包结果: ... -
TLS1.3 抓包分析
2020-04-29 15:13:50一、TLS1.3抓包分析——ClientHello 抓包使用的是WireShark2.6.7,抓包内容为https://tls13.crypto.mozilla.org/(Mozilla的TLS1.3测试页面),浏览器为chrome(需开启TLS1.3),这里我先给出抓包结果: ... -
HTTP报文抓包分析
2019-06-03 23:15:21HTTP请求报文抓包分析 一、抓包结果 使用wireshark在使用浏览网页时进行抓包,其中HTTP请求报文如下: 二、具体分析 对HTTP报文进行分析: GET /success.txt HTTP/1.1 HTTP请求行,请求方式GET / 请求路径 ... -
wireshark抓包分析
2015-06-15 15:44:19wireshark抓包分析 wireshark是非常流行的网络封包分析软件,功能十分强大。可以抓取各种网络包,并显示网络包的详细信息。开始界面 wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,... -
tcpdump抓包分析详解
2017-05-26 16:39:13tcpdump抓包分析详解 -
IPSEC隧道抓包分析
2017-03-13 09:46:32IPSEC VPN隧道抓包分析整个IPSEC VPN从建立到数据传输可以分为两个阶段。阶段一主要是协商建立一个主密钥,所有后续用户的密钥都根据主密钥产生,阶段一主要是在通信双方间建立一条经过身份验证并且加密的通道。阶段... -
网络爬虫---抓包分析,用抓包分析爬取腾讯视频某视频所有评论(Fiddler工具包的分享)
2019-04-14 16:23:13一、抓包分析 1.下载工具并安装 如果我们要进行抓包分析,首先,我们必须要有一款抓包的工具,只有用工具抓到包,我们才能进行分析,在这里我介绍一款抓包软件Fiddler,我这里有这个软件的分享: 链接:... -
ICMP查询报文抓包分析
2020-06-25 17:14:48ICMP查询报文抓包分析 5.1 问题 使用eNSP搭建实验环境,在G0/0/0开始抓包,在PC1上ping PC2 抓包分析ICMP查询报文 5.2 方案 使用eNSP搭建实验环境,如图-12所示。 图-12 5.3 步骤 实现此案例需要按照如下步骤进行。... -
ipv6地址抓包分析
2019-03-20 15:44:00拓扑图: 因为多路由,所以采用ospf配置将路由实现互通,从而进行抓包 ...进行抓包分析 128报文 129报文 134报文 135报文 136报文 从中可以看出ipv6与ipv4区别: 1 首部长度 首部长度可变... -
Wireshark数据抓包分析 网络协议篇
2014-09-28 14:11:15Wireshark数据抓包分析 网络协议篇 -
手机APP数据包抓包分析
2020-09-01 23:55:25最近在对手机APP请求的数据包进行抓包分析,但是在一些运用中,使用简单的HTTP或者HTTPS数据包抓包配置无法抓取到我们想要的数据包。这时候就需要我们借助其他工具来抓取APP的数据包。 一、工具 模拟器——雷电 ... -
sniffer抓包分析
2017-11-07 00:49:00抓包分析 本机IP地址:192.168.2.93 FTP服务器:192.168.2.212 TCP连接(三次握手) TCP第一次握手:192.168.2.93向192.168.2.212发送请求连接(SYN=1) TCP第二次握手:192.168.2.212回应192.168.2.93确认连接(ACK=1,... -
ICMP协议及其抓包分析
2020-09-29 10:41:45ICMP协议及其抓包分析 Internet消息控制协议(ICMP)指定了多种消息类型,其目的就是管理网络。 ICMP的消息分为错误信息、请求信息和响应消息。 一般ICMP数据包格式 ICMP数据包类型字段和代码字段 wireshark抓包... -
一个牛人总结的sniffer抓包分析教程
2017-04-11 09:45:51一个牛人总结的160多页sniffer抓包分析教程 -
Protobuf简单使用及其抓包分析
2014-12-24 11:42:19Protobuf简单使用及其抓包分析,参考:http://blog.csdn.net/wangqiuyun/article/details/42119835 -
使用科莱ARP协议抓包分析
2020-06-25 17:18:07ARP协议抓包分析 6.1 问题 使用eNSP搭建实验环境,在PC1接口开始抓包,在PC1上ping PC2 抓包分析ARP协议、查看ARP缓存表 6.2 方案 使用eNSP搭建实验环境,如图-15所示 图-15 6.3 步骤 实现此案例需要按照如下步骤... -
2019版抓包分析-Wireshark从入门到精通【进阶篇】
2018-11-09 10:00:32学会利用抓包神器Wireshark分析网络故障,了解网络协议原理,注重实战分析案例。 课程分为三个阶段: ...进阶篇:利用Wireshark抓包分析理解各种协议的本质 本课程为进阶篇,是2018年11月录制的最新版本 -
ftp抓包分析
2016-11-11 14:41:42FTP工作过程的抓包分析 http://blog.csdn.NET/nndtdx/article/details/6547419 关于被动模式与主动模式书上这么解释来着。 客户端与服务器建立控制连接后,要告诉服务器采用哪种文件传输模式。FTP提供了两种传输...
-
msr和esp分区有什么用
-
【2021】UI自动化测试Selenium3
-
通讯录系统设计源码Java.rar
-
最新kali之dnsenum
-
day02 java基本语法
-
win10下openpose运行demo的指令说明(视频和图片)
-
DTC-Airborne-Mesh-White-Paper.pdf
-
2021-01-20
-
表(Table)和视图(view)的区别和联系
-
0120记
-
jsp校园失物招领系统ssm程序.rar
-
算法设计与分析之基础知识
-
跟我练内测小分队学习礼包
-
emf-gef-ve.7z
-
微信支付2021系列之扫码支付一学就会java版
-
第3章 入门程序、常量、变量
-
ojdbc6-11.2.0.3.rar
-
性能测试面面观
-
基于X210的裸机时钟温度显示器-第3/3季
-
30个生涯锦囊,带你跳出迷茫,找到适合你的职业方向