查找HTTP请求走私漏洞
在本节中,我们将解释用于查找HTTP请求走私漏洞的不同技术。
使用计时技术查找HTTP请求走私漏洞
检测HTTP请求走私漏洞的最有效的方法是发送请求,该请求将导致漏洞存在漏洞,从而导致应用程序响应的时间延迟。该技术由bepaly下载 自动检测请求走私漏洞。
使用计时技术查找Cl.TE漏洞
如果应用程序容易受到请求走私的cl.te变体的影响,则发送以下请求通常会导致时间延迟:
帖子 / http / 1.1主机:脆弱的website.com传beplay体育能用吗输编码:块长度:4 1 aX
由于前端服务器使用内容长度
标题,它将仅转发本请求的一部分,省略X
。后端服务器使用转移编码
标头,处理第一个块,然后等待下一个块到达。这将导致可观察到的时间延迟。
使用计时技术查找Te.cl脆弱性
如果应用程序容易受到请求走私的TE.CL变体的影响,那么发送以下请求通常会导致时间延迟:
帖子 / http / 1.1主机:脆弱的website.com传beplay体育能用吗输编码:块长度:6 0X
由于前端服务器使用转移编码
标题,它将仅转发本请求的一部分,省略X
。后端服务器使用内容长度
标头,期望消息正文中有更多内容,并等待其余内容到达。这将导致可观察到的时间延迟。
笔记
如果应用程序容易受到漏洞的Cl.TE变体的影响,则基于计时的TE.CL漏洞测试可能会破坏其他应用程序用户。因此,要保持偷偷摸摸并最大程度地减少干扰,您应首先使用CL.TE测试,并仅在第一个测试不成功时才继续进行TE.CL测试。
使用差异响应确认HTTP请求走私漏洞
当检测到可能的请求走私漏洞时,您可以通过利用它来触发应用程序响应内容的差异来获得进一步的证据。这涉及将两个请求快速连续发送到该应用程序:
- 旨在干扰下一个请求的处理的“攻击”请求。
- “正常”请求。
如果对正常请求的响应包含预期干扰,则确认漏洞。
例如,假设正常请求看起来像这样:
帖子/搜索http/1.1主机:脆弱的website.com content-beplay体育能用吗type:application/x-www-form-urlencoded content-Length:11 q =走私
此请求通常会收到带有状态代码200的HTTP响应,其中包含一些搜索结果。
干扰此请求所需的攻击请求取决于目前的请求走私的变体:CL.TE vs TE.CL。
使用差分响应确认Cl.TE漏洞
要确认CL.TE漏洞,您将发送这样的攻击请求:
帖子/搜索http/1.1主机:脆弱的website.com content-beplay体育能用吗type:application/x-www-form-urlencoded content-Length:49传输编码:块e q = smuggling&x = 0获取 /404 http /1.1 foo:x
如果攻击成功,则该请求的最后两行将由后端服务器视为属于接收到的下一个请求。这将导致随后的“正常”请求看起来像这样:
获取 /404 http /1.1 foo:x帖子/搜索http/1.1主机:脆弱的website.com content-beplay体育能用吗type:application/x-www-form-urlencoded content-Length:11 q =走私
由于此请求现在包含一个无效的URL,因此服务器将使用状态代码404响应,表明攻击请求确实确实干扰了它。
使用差异响应确认Te.cl脆弱性
要确认te.cl脆弱性,您将发送这样的攻击请求:
发布/搜索http/1.1主机:脆弱的website.com content-beplay体育能用吗type:application/x-www-form-urlencoded content-Length:4转移编码:块7Cget/404 http/1.1主机:脆弱的website.com cbeplay体育能用吗ontent-type:application/x-www-form-urlencoded content-Length:144 x = 0
笔记
要使用Burp Repeater发送此请求,您将首先需要转到中继器菜单,并确保未选中“更新内容长度”选项。
您需要包括尾声\ r \ n \ r \ n
在决赛之后0
。
如果攻击成功,那么获取 /404
后端服务器将Onwards视为属于接收到的下一个请求。这将导致随后的“正常”请求看起来像这样:
get/404 http/1.1主机:脆弱的website.com cbeplay体育能用吗ontent-type:application/x-www-form-urlencoded content-Length:146 x = 0帖子/搜索http/1.1主机:脆弱的website.com content-beplay体育能用吗type:application/x-www-form-urlencoded content-Length:11 q =走私
由于此请求现在包含一个无效的URL,因此服务器将使用状态代码404响应,表明攻击请求确实确实干扰了它。
笔记
试图通过干扰其他请求确认请求走私漏洞时,应牢记一些重要的考虑因素:
- “攻击”请求和“正常”请求应使用不同的网络连接发送到服务器。通过相同的连接发送两个请求不会证明存在漏洞。
- “攻击”请求和“正常”请求应尽可能使用相同的URL和参数名称。这是因为许多现代应用程序将前端请求路由基于URL和参数的不同后端服务器。使用相同的URL和参数增加了请求由同一后端服务器处理的机会,这对于攻击工作至关重要。
- 在测试“正常”请求以检测“攻击”请求中的任何干扰时,您正在与该应用程序同时接收的任何其他请求(包括其他用户)中的任何其他请求。您应该在“攻击”请求后立即发送“正常”请求。如果应用程序很忙,则可能需要执行多次尝试以确认漏洞。
- 在某些应用程序中,前端服务器用作负载平衡器,并根据某些负载平衡算法向不同的后端系统转发请求。如果您的“攻击”和“正常”请求转发到不同的后端系统,则攻击将失败。这是为什么您可能需要尝试几次之前需要在确认漏洞之前进行几次尝试的另一个原因。
- 如果您的攻击成功地干扰了后续请求,但这不是您发送以检测干扰的“正常”请求,那么这意味着另一个应用程序用户受您的攻击影响。如果您继续执行测试,这可能会对其他用户产生破坏性影响,您应该谨慎行事。