零、写在前面
本来打算学习积累一下中间件、oracle、shell这方面的知识(别问,问就是工作中需要的多一些),过程中忽然发现了http smuggle这个漏洞,比较新奇,类似于溢出的利用方式深深把我吸引住了……索性先学习一下http是怎么走私的吧~
一、漏洞概述
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进架构中, 同时可以保护web服务器不被暴露到网络上。
二、影响版本
- 2.0.25
- 2.2.17
- 2.3.14
- 2.4.4
三、漏洞原理
简单来说,如果请求包中同时存在Transfor-Encoding和Content-Length,并且代理与服务器分别依据两个不同的参数进行包大小的判断,就有可能会错误的判断body,从而引起http smuggle。详情参见大佬的文章——HAProxy——http请求走私漏洞(CVE-2021-40346)分析_J0hnson666的博客-优快云博客_haproxy host攻击