freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

HTTP走私:原理、技术与防范
RachDou 2025-03-05 11:21:42 27032
所属地 四川省

什么是HTTP请求走私?

HTTP请求走私是一种干扰网站处理从一个或多个用户接收到的HTTP请求序列的技术。请求走私漏洞通常是关键性质的,允许攻击者绕过安全控制,获得对敏感数据的未授权访问,并直接危及应用程序的其他用户。

请求走私主要与HTTP/1请求相关。然而,支持HTTP/2的网站也可能易受攻击,这取决于其后端架构。

HTTP请求走私攻击是如何发生的?

如今的Web应用程序通常在用户和最终应用程序逻辑之间使用HTTP服务器链。用户将请求发送到前端服务器(有时称为负载均衡器或反向代理),前端服务器将请求转发到一个或多个后端服务器。这种架构在现代基于云的应用程序中越来越常见,在某些情况下是不可避免的。

当前端服务器将HTTP请求转发到后端服务器时,它通常会通过同一个后端网络连接发送多个请求,因为这更高效。协议非常简单;HTTP请求一个接一个地发送,接收服务器必须确定一个请求的结束和下一个请求的开始。
8986bad9b16e81a56ee04653beaede6.png

在这种情况下,前端和后端系统必须对请求之间的边界达成一致,否则攻击者可能会发送一个模棱两可的请求,该请求被前端和后端系统以不同的方式解释。
image.png

这里,攻击者导致其前端请求的一部分被后端服务器解释为下一个请求的开始。它实际上被插入到下一个请求之前,因此可以干扰应用程序处理该请求的方式。这就是请求走私攻击,它可能产生灾难性的后果。

HTTP请求走私漏洞是如何产生的?

大多数HTTP请求走私漏洞的产生是因为HTTP/1规范提供了两种不同的方法来指定请求的结束:Content-Length头和Transfer-Encoding头。

Content-Length头很简单:它指定了消息体的长度(以字节为单位)。例如:

POST /search HTTP/1.1
Host: normal-website.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 11
q=smuggling

Transfer-Encoding头可以用于指定消息体使用分块编码。这意味着消息体包含一个或多个数据块。每个块由块大小(以十六进制表示的字节数),后跟一个换行符,然后是块内容。消息以大小为零的块结束。例如:

POST /search HTTP/1.1
Host: normal-website.com
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
b
q=smuggling
0

注意

许多安全测试人员不知道分块编码可以在HTTP请求中使用,原因有两个:

  • Burp Suite会自动解包分块编码,以便更容易查看和编辑消息。

  • 浏览器通常不会在请求中使用分块编码,它通常只在服务器响应中看到。

由于HTTP/1规范提供了两种不同的方法来指定HTTP消息的长度,因此一个消息可以同时使用这两种方法,使它们彼此冲突。规范试图通过规定如果同时存在Content-LengthTransfer-Encoding头,则应忽略Content-Length头来防止此问题。这可能足以避免单个服务器的歧义,但当涉及两个或更多服务器时,问题可能会出现,原因如下:

  • 一些服务器不支持请求中的Transfer-Encoding头。

  • 一些支持Transfer-E

可试读前30%内容
¥ 14.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 漏洞 # web安全 # 漏洞分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 RachDou 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
RachDou LV.2
这家伙太懒了,还未填写个人描述!
  • 12 文章数
  • 2 关注者
JWT安全风险全解析:攻击手段与防护要点
2025-03-11
Web缓存欺骗:潜藏的安全陷阱与应对策略
2025-03-11
探秘条件漏洞:系统安全的潜在隐患
2025-03-04
文章目录