Jetty HTTP2.0 DoS漏洞分析

文章介绍了Jetty的一个中级漏洞,该漏洞可能导致DoS攻击,特别是在开启HTTP2.0功能后。攻击者通过慢速攻击策略如SlowHeader、SlowPOST和SlowRead耗尽服务器资源。作者详细解析了漏洞源码,解释了修复措施,并提供了一个Python脚本模拟SlowRead攻击,展示了如何利用和防范此类攻击。最后,文章提醒使用旧版Jetty的用户应考虑升级以避免风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

Tomcat和Jetty都是被广泛用于项目的开源Servlet容器。本文不会阐述Tomcat和Jetty之间的区别,感兴趣的同学可以自行学习相关内容。

Jetty团队去年在github issues中爆出了一个可能被DoS攻击的中级漏洞。github.com/eclipse/jet…

大致是,在Jetty容器引用http2-server组件开启HTTP2.0功能后,同时开发者提供了使用HTTP2.0协议服务接口。访问非正常URL时,攻击者可以通过耗尽TCP滑动窗口或HTTP2.0流控来达到耗尽Jetty服务器资源,从而达到DoS攻击效果。噢吼,这不就是HTTP慢速攻击吗。下面我们先来介绍一下HTTP慢速攻击,再来分析Jetty有漏洞的源码,之后我们做个实验来验证一下这个漏洞。

HTTP慢速攻击

HTTP慢速攻击是应用层DoS攻击的一种。由Web安全专家RSnake在2009年提出的一种攻击方式,其原理是以极低速度向服务器发送HTTP请求,服务器有并发数限制。一旦这些恶意链接不释放,同时不停的创建新的恶意链接就会导致服务器资源被耗尽。

HTTP慢速攻击一共有3种

Slow Header攻击

Slow Header攻击利用HTTP 请求头设计。众所周知HTTP Header是文本信息。每个属性,比如Content-Type: text/plain都是由"\r\n"来进行分隔的。最后一个属性后面会拼接"\r\n\r\n"来告知服务器请求头已传输完毕,请处理我的请求。攻击者利用这个设计,永远不传"\r\n\r\n",同时,我们也知道HTTP服务器在没有接收到完整的请求头是不会处理请求的。这时,服务器就不得不一直维持着链接。一旦存在大量这种链接,就会导致服务器资

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值