【网络安全】HTTP Slowloris攻击原理解析

news2024/11/18 15:50:29

文章目录

    • Slowloris攻击的概念
    • Slowloris攻击原理
    • Slowloris攻击的步骤
    • 其他的DDoS攻击类型
      • UDP Flood
      • ICMP (Ping) Flood
      • SYN Flood
      • Ping of Death
      • NTP Amplification
      • HTTP Flood
      • Zero-day DDoS 攻击
    • 推荐阅读

Slowloris攻击的概念

Slowloris是在2009年由著名Web安全专家RSnake提出的一种攻击方法,Slowloris是一种针对Web服务器的攻击方式。它利用了服务器在处理HTTP连接时的一些弱点,通过向服务器发送大量的HTTP请求,但在每个请求的头部只发送部分数据并保持连接不断开的方式来耗尽服务器资源。

Slowloris攻击原理

攻击者使用Slowloris攻击时,会向目标服务器发送大量的请求,但这些请求不会完全发送完整的HTTP头部信息,而是会保持未完成状态。由于这些请求未完成,服务器会为每个请求保持连接状态,但却不会响应或关闭这些连接。这导致服务器的连接资源最终被耗尽,无法响应其他正常的合法请求,使得服务器无法向合法用户提供Web服务。
在这里插入图片描述
在正常的HTTP包头中,是以两个CLRF1表示HTTP Headers部分结束的。如果Web Server只收到了一个\r\n,因此将认为HTTP Headers部分没有结束,并保持此连接不释放,继续等待完整的请求。此时客户端再发送任意HTTP头,保持住连接即可。

import requests

# 定义头部信息
headers = {
    'User-Agent': 'My User Agent',         # 用户代理信息
    'Accept': 'application/json',          # 接受的内容类型
    'Content-Type': 'application/json',    # 请求的内容类型
    'Authorization': 'Bearer YOUR_TOKEN',  # 授权信息
    # 添加其他需要的头部信息...
}

# 构造请求
url = 'https://api.example.com/endpoint'
response = requests.get(url, headers=headers)

# 输出响应内容
print(response.text)

以python为例,在引入requests库时,requests 库会自动处理生成符合 HTTP 标准的头部信息,包括正确的 CRLF 格式。你只需提供键值对形式的头部信息,库会负责构建正确格式的头部。这样,就避免了开发人员无意间造成的慢速访问或者慢速攻击。

Slowloris攻击不会占用很大的网络带宽,只是利用看起来正常但是很慢,并且是正常的流量来消耗服务器的资源,所以被归类为“慢速”攻击。

Slowloris攻击的步骤

  1. 建立连接: 攻击者利用自动化工具向目标服务器发起大量的网络连接请求。

  2. 发送部分请求头: 每个连接都会发送一个HTTP请求,但请求头部信息只会发送部分内容,保持请求处于未完成状态。

  3. 保持连接打开: 攻击者会定期向服务器发送少量数据以保持连接处于打开状态,但不会完成整个HTTP请求。这样,服务器为每个连接保持打开状态,并等待请求的完成。

  4. 耗尽服务器资源: 由于服务器在等待这些请求完成而保持连接打开,这会消耗服务器的连接资源。随着攻击者不断创建新的连接并保持它们处于未完成状态,服务器的连接资源最终会耗尽,导致合法用户无法建立新的连接或访问服务器。

  5. 拒绝服务: 一旦服务器的连接资源被耗尽,它将无法响应新的合法请求,导致服务不可用,即拒绝服务攻击(Denial of Service)。

其他的DDoS攻击类型

UDP Flood

UDP flood是指用用户数据报协议(UDP)数据包淹没目标的任何DDoS攻击。攻击的目的是攻击远程主机上的随机端口。这使得主机反复检查在该端口侦听的应用程序,并且(当没有找到应用程序时)发送一个ICMP“目的地不可达”数据包的响应。这个过程会消耗主机资源,最终导致其他用户无法访问。
在这里插入图片描述

ICMP (Ping) Flood

与UDP flood攻击类似,ICMP flood攻击通过ICMP Echo Request (ping)报文淹没目标资源,通常以最快的速度发送报文,而不等待应答。这种类型的攻击会消耗传入和传出带宽,因为受害者的服务器通常会尝试使用ICMP Echo Reply数据包进行响应,从而导致整个系统的显著减速。
在这里插入图片描述

SYN Flood

SYN flood DDoS攻击利用了TCP连接序列中的一个普遍弱点(“三次握手”),其中SYN发起到主机的TCP连接的请求必须由该主机的SYN-ACK响应响应,然后由请求者的ACK回复确认。在SYN洪水的场景中,请求者将发送多个SYN请求,但要么不响应主机的SYN- ack响应,要么从欺骗的IP地址发送SYN请求。
无论哪种方式,主机系统都会继续等待每个请求的确认,绑定资源,直到无法建立新的连接,并最终导致拒绝服务。
在这里插入图片描述

Ping of Death

POD或死亡ping攻击涉及攻击者向计算机发送几个恶意或畸形的ping。IP报文的最大长度(包括报头)为65,535字节。然而,数据链路层经常对最高帧大小设置限制——例如,在以太网网络上限制为1500字节。在这种情况下,一个大的IP数据包被分成不同的IP数据包(分片),接收主机将这些IP分片重新组装成一个完整的数据包。
在Ping of Death的攻击中,在恶意操纵片段内容后,重新组装时,会给接收方留下一个大于65,535字节的IP数据包。这可能超出为数据包分配的内存缓冲区,从而导致拒绝合法数据包的服务。
在这里插入图片描述

NTP Amplification

NTP(Network Time Protocol)放大攻击是一种利用NTP服务器的特性来发起分布式拒绝服务(DDoS)攻击的方式。NTP是用于同步计算机系统时间的协议,攻击者利用其Monlist命令的特性来进行攻击。

攻击者向运行NTP服务器的计算机发送伪造的请求,将目标IP地址设置为受害者的IP。NTP服务器会响应这个请求,并将一个包含最多最近的客户端的IP地址的响应发送回被伪造的IP地址(即受害者的IP地址)。攻击者利用这一点,向NTP服务器发送大量伪造请求,并导致NTP服务器向受害者发送大量的响应数据,从而将其网络连接耗尽,造成拒绝服务。

攻击的效果类似于其他放大攻击(例如DNS放大攻击),攻击者发送小型请求,但服务器的响应会远远大于请求的大小,这导致了数据的放大效应,最终使受害者遭受大量的网络流量,超出其网络带宽和处理能力的承受范围。

在这里插入图片描述

HTTP Flood

HTTP flood攻击是一种DDoS(分布式拒绝服务)攻击,利用大量伪造的HTTP请求同时向目标服务器发送请求,目的在于超载服务器的处理能力,使其无法有效地处理合法用户的请求,导致服务不可用。攻击者通过发送大量请求,耗尽服务器的资源,如带宽、处理器等,造成网络阻塞或服务器崩溃,使合法用户无法访问或使用目标网站或服务。

在这里插入图片描述

Zero-day DDoS 攻击

Zero-day DDoS Attacks是指利用针对未知漏洞的攻击手法,针对网络系统进行分布式拒绝服务(DDoS)攻击,攻击者利用这些未被厂商或组织发现的安全漏洞,通过快速开发和利用这些漏洞来对网络设施进行攻击,导致系统服务不可用。
【网络安全】零日漏洞(0day)是什么?如何防范零日攻击?
这类攻击对于网络防御者来说尤其具有挑战性,因为攻击利用了未知漏洞,使得预防和应对变得更为困难,通常需要实时响应和快速补救措施,以最小化攻击带来的影响。

推荐阅读

  • 【网络安全】零日漏洞(0day)是什么?如何防范零日攻击?
  • 【网络安全】网络设备可能面临哪些攻击?
  • 【漏洞修复】Cisco IOS XE软件Web UI权限提升漏洞及修复方法
  • 【网络安全】专门为Web应用程序提供安全保护的设备-WAF

  1. CLRF指的是"Carriage Return Line Feed"(回车换行),它是一种控制字符序列,用于表示文本中的换行操作。在不同的操作系统和文本文件中,换行的方式可能有所不同。
    回车(Carriage Return):在ASCII字符集中,它的十六进制值是0x0D,通常表示为 \r。回车符指示将光标移动到当前行的开头位置。
    换行(Line Feed):在ASCII字符集中,它的十六进制值是0x0A,通常表示为 \n。换行符指示将光标移动到下一行的开头位置。
    在很多操作系统中,换行被表示为回车符后紧跟着一个换行符(即CRLF,\r\n),而在一些其他的系统中,可能只使用回车符(\r)或者换行符(\n)来表示换行。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1313859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

西南交通大学【数电实验7---按键防抖动设计】

实验电路图、状态图、程序代码、仿真代码、仿真波形图(可以只写出核心功能代码,代码要有注释) 一共四个状态:1.未按下时空闲状态 2.按下抖动滤除状态 3.按下稳定状态 4.释放抖动滤除状态 在第一个状态时,等待按键按下&…

智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.探路者算法4.实验参数设定5.算法结果6.参考文…

轻松制作健身预约小程序

如果你想制作一个健身预约小程序,实现高效预约与健身管理,可以按照以下步骤进行操作。 第一步:注册登录乔拓云平台,进入后台 第二步:点击【轻应用小程序】,进入设计小程序页面。 第三步:在设计小…

Java---Collection讲解(一)

文章目录 1. 集合体系结构2. Collection集合概述和使用3. Collection集合的遍历4. 小案例分析5. List集合概述和特点6. List集合的特有方法7. 小案例分析 1. 集合体系结构 集合体系结构如下所示。在实现时我们需要使用接口的具体实现类。 2. Collection集合概述和使用 1. Colle…

MySQL数据库 入门

目录 一、MySQL概述 二、MySQL安装 安装数据库 配置数据库 启动停止数据库 客户端连接数据库 三、数据模型 四、SQL 一、MySQL概述 先来讲解三个概念:数据库、数据库管理系统、 SQL 。 而目前主流的关系型数据库管理系统的市场占有率排名如下: …

【jitterbuffer】3:VCMJitterEstimator及所需的概率知识:期望、方差、协方差

期望 : 全国的平均积雪深度 期望值为负 概率就是 不同国家的面积了,总面积是1 期望计算公式 某种函数的期望 K的求和范围 计算期望 1

windows任意APP注册成服务(以nginx服务为例)

前言 最近需要部署一个前端项目,用到了nginx。正常情况是:需要使用时nginx服务时,进入到nginx.exe所在目录,然后执行:start nginx.exe,但是线上环境这样搞的话还是不太科学。由于好奇心(懒&…

解读unity内置的软阴影处理方式

解读unity内置的软阴影处理方式: 参考网址: https://blog.csdn.net/cgy56191948/article/details/105726682 https://blog.csdn.net/weixin_45776473/article/details/119582218 https://tajourney.games/5482/ 上面的博客已经论述了,为何出现…

猫头虎博主深度解析:Tomcat中的`IllegalArgumentException`异常处理全攻略 ️

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Etsy运营秘籍——打造大卖店铺的九大技巧

在跨境电商的浩瀚海洋中,Etsy 作为一个注重手工制作与独特设计的平台,吸引了众多卖家的关注。在 Etsy 的世界里,成功运营小店需要更多的智慧和技巧。作为一位在 Etsy 上开店多年的老手,在这过程中也总结了不少经验,这篇…

微服务组件Sentinel的学习(2)

限流规则 流控模式直接模式关联模式链路模式 流控效果快速失败warm up排队等待 热点参数限流 流控模式 添加限流规则,可点击高级选项,有三种流控模式选择: 直接:统计当前资源的请求,触发闻值时对当前资源直接限流,也是…

LeetCode力扣每日一题(Java):69、x 的平方根

一、题目 二、解题思路 1、 我的思路 我的思路是直接循环暴力破解&#xff0c;定义计数器i&#xff0c;从1开始递增&#xff0c;直到i*i大于或等于x 于是有了如下代码 int i 1;while(true){if(i*i<x){i;}else if(i*ix){return i;}else{return i-1;}} 但提交之后超出了…

开启虚拟世界的新篇章

近年来&#xff0c;随着科技的迅猛发展&#xff0c;人们生活方式的改变也日益显著。而其中一个最引人注目的变化便是数字人直播的兴起。数字人直播以其独特的魅力&#xff0c;成为了当今社会中备受关注的热门话题。本文将从数字人直播的定义、应用领域以及未来发展等方面&#…

状态的一致性和FlinkSQL

状态一致性 一致性其实就是结果的正确性。精确一次是指数据有可能被处理多次&#xff0c;但是结果只有一个。 三个级别&#xff1a; 最多一次&#xff1a;1次或0次&#xff0c;有可能丢数据至少一次&#xff1a;1次或n次&#xff0c;出错可能会重试 输入端只要可以做到数据重…

怎么选择合适的3ds Max云渲染农场?

3ds Max 用户日常面临的一个共同挑战便是漫长的渲染周期。作为一个强大的三维建模和渲染软件&#xff0c;3ds Max 势必需处理大量的光照、材质和阴影计算任务&#xff0c;因此&#xff0c;良好的渲染方案对从业者而言尤为重口。 一、为何考虑3ds Max云渲染? 云渲染成为了解决…

mysql中DML数据操作的增 修 删

现有如下的表 DML 数据操作 增(四种方法) 修 删 -- 增 INSERT INTO student (NAME,birthday,phone,height,reg_time)VALUES(詹姆斯,1985-2-3,15222233,1.98,NOW()) INSERT INTO student SET NAME科比 ,birthday19863,phone15622333 -- 插入多个 INSERT INTO student (NAME…

使用C++11开发一个半同步半异步线程池

半同步半异步线程池介绍 在处理大量并发任务的时候&#xff0c;如果按照传统的方式&#xff0c;一个请求一个线程来处理请求任务&#xff0c;大量的线程创建和销毁将消耗过多的系统资源&#xff0c;还增加了线程上下文切换的开销&#xff0c;而通过线程池技术就可以很好的解决这…

命令执行 [BUUCTF 2018]Online Tool1

打开题目 我们代码审计一下 if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) { $_SERVER[REMOTE_ADDR] $_SERVER[HTTP_X_FORWARDED_FOR]; } 如果存在xxf头且不为空&#xff0c;则将xxf头内容&#xff08;真实的客户端ip&#xff09;赋给ROMOTE_ADDR&#xff08;代理服务器传过…

[pluginviteimport-analysis] vite 提示jsx语法报错

参考文章 https://segmentfault.com/q/1010000043499356https://blog.csdn.net/kkkkkkgg/article/details/131168224 报错内容 内容类似如下&#xff1a; 03:16:26 [vite] Internal server error: Failed to parse source for import analysis because the content contains…

上海亚商投顾:沪指收复3000点,房地产板块集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日窄幅震荡&#xff0c;创业板指走势较弱&#xff0c;科创50指数跌近1%。房地产板块集体走强&#xff0…