622泪滴( Teardrop) 口两台计算机在进行通信时,如果传输的数据量较 大,无法在一个数据报文中传输完成,就会将数 据拆分成多个分片,传送到目的计算机后再到堆 栈中进行重组,这一过程称为“分片” 口为了能在到达目标主机后进行数据重组,IP包的 TCP首部中包含有信息(分片识别号、偏移量、 数据长度、标志位)说明该分段是原数据的哪一 段,这样,目标主机在收到数据后,就能根据首 部中的信息将各分片重新组合还原为数据。 2021/2/1 网络入侵与防范讲义
2021/2/1 网络入侵与防范讲义 21 6.2.2 泪滴(Teardrop) 两台计算机在进行通信时,如果传输的数据量较 大,无法在一个数据报文中传输完成,就会将数 据拆分成多个分片,传送到目的计算机后再到堆 栈中进行重组,这一过程称为“分片”。 为了能在到达目标主机后进行数据重组,IP包的 TCP首部中包含有信息(分片识别号、偏移量、 数据长度、标志位)说明该分段是原数据的哪一 段,这样,目标主机在收到数据后,就能根据首 部中的信息将各分片重新组合还原为数据
例子 PSH1:1025… 试图重组时 主机崩溃 PSH1000:2049…… PSH1:1025…… 4 SH1025:2049… 5 PSH2049:3073…… PSH2049:3073… ACK 2021/2/1 网络入侵与防范讲义
2021/2/1 网络入侵与防范讲义 22 例子 PSH 1:1025…… PSH 1000:2049…… PSH 2049:3073…… 1 3 2 4 5 6 PSH 1:1025…… PSH 2049:3073…… PSH 1025:2049…… PSH…… ACK…… 试图重组时 主机崩溃
例子(2) 口如上图所示,从客户机向服务器发送一个数 据报文无法发送完成的数据,这些数据会被 分片发送。 口报文1、2、3是TCP连接的三次握手过程, 接着4、5、6客户机向服务器发送三个报文, 在这三个数据报文首部信息中,有每个报文 的分片信息。 2021/2/1 网络入侵与防范讲义
2021/2/1 网络入侵与防范讲义 23 例子(2) 如上图所示,从客户机向服务器发送一个数 据报文无法发送完成的数据,这些数据会被 分片发送。 报文1、2、3是TCP连接的三次握手过程, 接着4、5、6客户机向服务器发送三个报文, 在这三个数据报文首部信息中,有每个报文 的分片信息
例子(3) 口这就是报文重组的信息: ■PsH1:1025(1024)ack1,win4096 ■PsH1025:2049(1024)ack1,win4096 PSH2049:3073(1024)ack1,Win4096 口在这个报文中,可以看到在第4、5、6这三个报文 中,第4个发送的数据报文中是原数据的第1 1025字节内容,第5个发送的报文包含的是第 L025~2048字节,第6个数据报文是第2049~ 3073个字节,接着后面是继续发送的分片和服务 器的确认。当这些分片数据被发送到目标主机后 且标丰机就能够根据报文中的信息将分片重组,还 原出数据。 2021/2/1 网络入侵与防范讲义三
2021/2/1 网络入侵与防范讲义 24 例子(3) 这就是报文重组的信息: ◼ PSH 1:1025(1024) ack 1, win 4096 ◼ PSH 1025:2049(1024) ack 1, win 4096 ◼ PSH 2049:3073(1024) ack 1, win 4096 在这个报文中,可以看到在第4、5、6这三个报文 中,第4个发送的数据报文中是原数据的第1~ 1025字节内容,第5个发送的报文包含的是第 1025~2048字节,第6个数据报文是第2049~ 3073个字节,接着后面是继续发送的分片和服务 器的确认。当这些分片数据被发送到目标主机后, 目标主机就能够根据报文中的信息将分片重组,还 原出数据
例子(4) 口如果入侵者伪造数据报文,向服务器发送含有重 叠偏移信息的分段包到目标主机,例如如下所列 的分片信息 ■PSH1:1025(1024)ack1,win4096 ■PsH1000:2049(1024)ack1,win4096 ■PsH2049:3073(1024)ack1,win4096 口这样的信息被目的主机收到后,在堆栈中重组时 由于畸形分片的存在,会导致重组出错,这个错 误并不仅仅是影响到重组的数据,由于协议重组 算法,会导致内存错误,引起协议栈的崩溃。 2021/2/1 网络入侵与防范讲义
2021/2/1 网络入侵与防范讲义 25 例子(4) 如果入侵者伪造数据报文,向服务器发送含有重 叠偏移信息的分段包到目标主机,例如如下所列 的分片信息: ◼ PSH 1:1025(1024) ack1, win4096 ◼ PSH 1000:2049(1024) ack1, win4096 ◼ PSH 2049:3073(1024) ack1, win4096 这样的信息被目的主机收到后,在堆栈中重组时, 由于畸形分片的存在,会导致重组出错,这个错 误并不仅仅是影响到重组的数据,由于协议重组 算法,会导致内存错误,引起协议栈的崩溃