详解常见web攻击手段(3)

其中对上传文件的类型进行白名单校验,并不能单单通过后缀名称来判断文件的类型,因为攻击者很有可能可以通过将可执行文件的后缀名称改为其他可上传的后缀名称进行上传,因为判断文件类型就需要使用更加安全的方式。

很多类型的文件,其实的几个字节内容是固定的,因此根据这几个字节的内容,就可以确定文件类型,而这几个字节也被成为 魔数

详解常见web攻击手段

以上便是文件类型的魔数,然后我们通过获取文件的文件头与文件类型的魔数相比较来判断文件类型

详解常见web攻击手段

五、DDOS攻击

DDos攻击 又称为 分布式拒绝服务攻击 (Distributed Denial of Service),是目前最为强大,最难以防御的攻击方式之一。

在了解 DDoS 之前,我们需要先知道什么是 DoS。最基本的 DoS 就是利用合理的客户端请求里占用过多的服务器资源,从而使合法用户无法得到服务器的响应。DDoS 攻击便是在传统的 DoS 攻击的基础上产生的一类攻击方式。传统的 DoS攻击一般是一对一的方式,当攻击目标的CPU速度、内存或者网络带宽等各项性能指标不高的情况下,它的效果是明显的,但随着计算机与网络技术的发展,计算机的处理能力显著增加,内存不断增大,这便使得 DoS 攻击逐渐失去了效果。

这就跟单体应用向分布式架构的演进一样,传统的 DoS 演进到了分布式DoS (DDoS) 。

1、攻击原理

DDoS 攻击指的便是攻击者借助公共网络,将数量庞大的计算机设备联合起来作为攻击平台,对一个或多个目标发动攻击,从而达到瘫痪目标主机的目的。通常在攻击开始之前,攻击者会提前控制大量的用户计算机,这类计算机称之为 肉鸡,并通过指令使大量的的肉鸡在同一时刻对某个主机进行访问,从而达到瘫痪目标主机的目的。

2、DDoS分类

DDoS 是一种攻击手段,其中又分为好几种 DDoS攻击

1)SYN Flood

SYN Flood 是互联网中最经典的攻击方式之一,要了解该攻击方式,我们需要从 TCP 协议连接的过程说起。众所周知,TCP 协议在通信之前,必须先建立基于 TCP 协议的一个连接,以下是建立连接的过程:

详解常见web攻击手段

这是一张非常建议的 TCP 三次握手的过程。

第一步,客户端发送一个包含 SYN 标识的 TCP 报文,SYN 即同步(Synchronized)的意思,SYN报文会指明客户端的端口号以及 TCP 连接的初始序列号

第二步,服务器在收到客户端的 SYN 报文后,会返回一个 SYN+ACK 的报文,表示客户端请求被接收,同时 TCP 序列号被加 1,ACK 即确认(Acknowledgment)的意思

第三步,客户端在接收到服务端的 SYN + ACK 报文后,也会返回一个 ACK 报给服务端,同样,TCP 的序列号加 1,这时,TCP连接便建立好了,接下来便可以进行数据通信了。

TCP 协议 是可靠的传输协议,在三次握手的过程中设置了一些异常处理机制。第三步中如果服务器没有收到客户端的 ACK 报文,服务端一般会进行重试,也就是再次发送 SYN + ACK 报文给客户端,并且一直处于 SYN_RECV 的状态,将客户端加入等待列表;另一方面,服务器在发出 SYN + ACK 报文后,会预先分配一部分资源给即将建立的 TCP 连接,这个资源在等待重试期间一直保留,由于服务器的资源有限,可以维护的等待列表超过极限之后就不会再接收新的 SYN 报文,也就是拒绝建立新的 TCP 连接。

这个时候我们便可以说说 SYN Flood 是怎么回事了,SYN Flood就是利用了 TCP 协议三次握手的过程来达到攻击的目的。攻击者伪造大量的 IP 地址给服务器发送 SYN 报文,因为伪造的 IP 地址不可能存在,也就不可能从客户端得到任何响应,就会一直卡在第三步,服务端就得维护一个非常大的半连接等待列表,并且不断对这个列表中的 IP 地址进行遍历重试,占用了大量的系统资源。而由于服务器资源有限,恶意的连接占满了服务器的等待队列,导致服务器不再接收新的 SYN 请求,使正常的用户无法完成通信。

2)DNS Query Flood

DNS Query Flood 实际上就是 UDP Flood 攻击的一种变形,因为 DNS 服务在互联网中具有不可替代的作用,因此一旦 DNS 服务器 瘫痪,影响将非常大!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysfsj.html