首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在te.cl类型的http请求走私中,如何计算走私请求中的数据包长度?

在te.cl类型的http请求走私中,如何计算走私请求中的数据包长度?
EN

Security用户
提问于 2022-12-29 03:12:02
回答 2查看 116关注 0票数 0

我正在学习“利用HTTP请求走私绕过前端安全控制,TE.CL漏洞”,我发现长度可以设置为20、30等。在一定的范围内,我可以随意设置内容长度的值。

,我认为应该是6,对于"x=1\r\n0“应该是6,但是当内容长度设置为6时,响应结果是错误的。那么,如何计算这个内容长度的值呢?我没有在网上找到答案,有人能帮我吗,非常感谢

做了一个基于“”的S回答的测试,看起来这个测试有一个问题

我做了一个基于regilero的答案的测试,似乎存在一些问题

EN

回答 2

Security用户

发布于 2023-01-10 13:24:28

当走私攻击发生时,会忽略块模式(适用CL:4)。所以我们删除前4个字节(71\r\n)。然后,您有一个新的请求,这是一个‘简单’的帖子。我不计算6个字符(也不算5个字符,因为x=1\r\n是5个),而是10个字符:

代码语言:javascript
复制
x=1\r\n
0\r\n
\r\n

0\r\n\r\n是第一个请求块的末尾,但是对于没有问题的参与者,它只用作块的末尾,如果您有cl问题,那么这个块的结束现在是您身体的一部分,您需要将这5个字节添加到原来的主体大小中。

票数 1
EN

Security用户

发布于 2022-12-29 07:07:27

内部请求的主体是x=1,而不是x=1\r\n0。相反,\r\n0是外部请求块编码的一部分:\r\n位于每个块的末尾,但不属于负载本身。下面的十六进制数字(和后面的\r\n)描述了下一个块的长度,即在最后一个块的情况下为0。有关分块编码的详细信息,请参见这里

因此,内容长度应该是3。

注意,块之前给定的块大小应该反映块的实际大小。对于一个content-length: 30,这是114,也就是给出的71。对于一个content-length: 3,这需要调整到113,即十六进制70。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/267357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档