博客

感受路径穿越漏洞的影响,这也是最近Apache困境的罪魁祸首

Charlie Eriksen
发表于2021年10月18日

10月初,Apache发布了2.4.49版本,修复了一个路径遍历和远程代码执行漏洞,随后又发布了2.4.50版本,以解决2.4.49版本修复不完整的问题。也许你已经在社交媒体上看到了关于更新到最新版本以避免这些风险的重要性的讨论,因为根据一些估计,Apache为25%的互联网提供动力。但这是怎么回事呢?这里存在多大的风险?

为什么不自己尝试一下呢? 

我们已经建立了一个任务来展示真实环境中的风险,并将其公开供大家尝试。在这个任务中,我们将引导你了解路径穿越漏洞如何影响你的基础设施和应用程序。点击下面直接进入,或继续阅读以了解更多关于该漏洞的细节。

试用阿帕奇CVE-2021-41773任务的标语
转到公共使命


关于路径穿越漏洞 

该漏洞是在2.4.49版本中引入的(由于URL规范化功能的改变),其中引入了一个新的路径规范化功能。不幸的是,它未能正确规范URL编码的路径。这使得如果不存在以下配置,就有可能进行路径遍历攻击

拒绝或允许对目录文件系统的访问


而如果mod_cgi 被启用,它也可以被利用成为一个远程代码执行的漏洞。但是,让我们首先挖掘一下URL编码,以更好地了解出错的原因。

URL 编码

在最基本的情况下,该漏洞的发生是由于缺乏对具有URL编码的URL的考虑。新引入的路径规范化功能没有完全处理点状物是URL编码的情况。 

请记住,要进行路径遍历攻击,你需要用.../这个序列进行遍历。然而,规范化函数足够聪明,可以将其剥离出来。那么你是怎么做的呢?你可以将.(Dot)编码为%2e,并使用.%2e/这样的序列。这在很多情况下对Apache 2.4.40都有效。但你也可以更进一步,对它进行双重编码。.%2e/ 的URL编码版本是.%252e/。这进一步能够绕过Apache试图进行的规范化。

但有一个问题

如果有人想直接在他们的浏览器中尝试利用这个漏洞,他们不会成功。这是由于浏览器也试图将发送到服务器的URL规范化。这意味着,即使是我们的双重编码序列也会被删除。这也意味着我们不能简单地用浏览器来证明这一点。

你可以通过使用-path-as-is 标志来证明这一点,这可以防止它在发送URL之前对其进行规范化。

带链接的Curl路径代码

预防和缓解

为了完全防止这个问题,重要的是保持与Apache的最新补丁同步。具体来说,你至少要升级到2.4.51。但定期升级以保持最新也是一个好的做法。

如果你运行的是2.4.49,为了减轻这个问题,请确保你在你的Apache配置中包含以下内容。

带有allowoverride none和require all denied规则的目录代码标签

为了防止远程代码执行,如果你不使用mod_cgi ,请禁用它。

亲身体验其影响

有兴趣探究到底发生了什么,并亲自尝试一下吗? 


查看资源
查看资源

10月初,Apache发布了2.4.49版本,修复了一个路径遍历和远程代码执行漏洞,然后又发布了2.4.50版本,以解决修复不完整的问题。我们建立了一个任务,以展示真实环境中的风险。现在就去试试吧。

想了解更多信息?

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

预定一个演示
分享到
作者
Charlie Eriksen
发表于2021年10月18日

分享到

10月初,Apache发布了2.4.49版本,修复了一个路径遍历和远程代码执行漏洞,随后又发布了2.4.50版本,以解决2.4.49版本修复不完整的问题。也许你已经在社交媒体上看到了关于更新到最新版本以避免这些风险的重要性的讨论,因为根据一些估计,Apache为25%的互联网提供动力。但这是怎么回事呢?这里存在多大的风险?

为什么不自己尝试一下呢? 

我们已经建立了一个任务来展示真实环境中的风险,并将其公开供大家尝试。在这个任务中,我们将引导你了解路径穿越漏洞如何影响你的基础设施和应用程序。点击下面直接进入,或继续阅读以了解更多关于该漏洞的细节。

试用阿帕奇CVE-2021-41773任务的标语
转到公共使命


关于路径穿越漏洞 

该漏洞是在2.4.49版本中引入的(由于URL规范化功能的改变),其中引入了一个新的路径规范化功能。不幸的是,它未能正确规范URL编码的路径。这使得如果不存在以下配置,就有可能进行路径遍历攻击

拒绝或允许对目录文件系统的访问


而如果mod_cgi 被启用,它也可以被利用成为一个远程代码执行的漏洞。但是,让我们首先挖掘一下URL编码,以更好地了解出错的原因。

URL 编码

在最基本的情况下,该漏洞的发生是由于缺乏对具有URL编码的URL的考虑。新引入的路径规范化功能没有完全处理点状物是URL编码的情况。 

请记住,要进行路径遍历攻击,你需要用.../这个序列进行遍历。然而,规范化函数足够聪明,可以将其剥离出来。那么你是怎么做的呢?你可以将.(Dot)编码为%2e,并使用.%2e/这样的序列。这在很多情况下对Apache 2.4.40都有效。但你也可以更进一步,对它进行双重编码。.%2e/ 的URL编码版本是.%252e/。这进一步能够绕过Apache试图进行的规范化。

但有一个问题

如果有人想直接在他们的浏览器中尝试利用这个漏洞,他们不会成功。这是由于浏览器也试图将发送到服务器的URL规范化。这意味着,即使是我们的双重编码序列也会被删除。这也意味着我们不能简单地用浏览器来证明这一点。

你可以通过使用-path-as-is 标志来证明这一点,这可以防止它在发送URL之前对其进行规范化。

带链接的Curl路径代码

预防和缓解

为了完全防止这个问题,重要的是保持与Apache的最新补丁同步。具体来说,你至少要升级到2.4.51。但定期升级以保持最新也是一个好的做法。

如果你运行的是2.4.49,为了减轻这个问题,请确保你在你的Apache配置中包含以下内容。

带有allowoverride none和require all denied规则的目录代码标签

为了防止远程代码执行,如果你不使用mod_cgi ,请禁用它。

亲身体验其影响

有兴趣探究到底发生了什么,并亲自尝试一下吗? 


查看资源
查看资源

请填写下表下载报告

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。

10月初,Apache发布了2.4.49版本,修复了一个路径遍历和远程代码执行漏洞,随后又发布了2.4.50版本,以解决2.4.49版本修复不完整的问题。也许你已经在社交媒体上看到了关于更新到最新版本以避免这些风险的重要性的讨论,因为根据一些估计,Apache为25%的互联网提供动力。但这是怎么回事呢?这里存在多大的风险?

为什么不自己尝试一下呢? 

我们已经建立了一个任务来展示真实环境中的风险,并将其公开供大家尝试。在这个任务中,我们将引导你了解路径穿越漏洞如何影响你的基础设施和应用程序。点击下面直接进入,或继续阅读以了解更多关于该漏洞的细节。

试用阿帕奇CVE-2021-41773任务的标语
转到公共使命


关于路径穿越漏洞 

该漏洞是在2.4.49版本中引入的(由于URL规范化功能的改变),其中引入了一个新的路径规范化功能。不幸的是,它未能正确规范URL编码的路径。这使得如果不存在以下配置,就有可能进行路径遍历攻击

拒绝或允许对目录文件系统的访问


而如果mod_cgi 被启用,它也可以被利用成为一个远程代码执行的漏洞。但是,让我们首先挖掘一下URL编码,以更好地了解出错的原因。

URL 编码

在最基本的情况下,该漏洞的发生是由于缺乏对具有URL编码的URL的考虑。新引入的路径规范化功能没有完全处理点状物是URL编码的情况。 

请记住,要进行路径遍历攻击,你需要用.../这个序列进行遍历。然而,规范化函数足够聪明,可以将其剥离出来。那么你是怎么做的呢?你可以将.(Dot)编码为%2e,并使用.%2e/这样的序列。这在很多情况下对Apache 2.4.40都有效。但你也可以更进一步,对它进行双重编码。.%2e/ 的URL编码版本是.%252e/。这进一步能够绕过Apache试图进行的规范化。

但有一个问题

如果有人想直接在他们的浏览器中尝试利用这个漏洞,他们不会成功。这是由于浏览器也试图将发送到服务器的URL规范化。这意味着,即使是我们的双重编码序列也会被删除。这也意味着我们不能简单地用浏览器来证明这一点。

你可以通过使用-path-as-is 标志来证明这一点,这可以防止它在发送URL之前对其进行规范化。

带链接的Curl路径代码

预防和缓解

为了完全防止这个问题,重要的是保持与Apache的最新补丁同步。具体来说,你至少要升级到2.4.51。但定期升级以保持最新也是一个好的做法。

如果你运行的是2.4.49,为了减轻这个问题,请确保你在你的Apache配置中包含以下内容。

带有allowoverride none和require all denied规则的目录代码标签

为了防止远程代码执行,如果你不使用mod_cgi ,请禁用它。

亲身体验其影响

有兴趣探究到底发生了什么,并亲自尝试一下吗? 


访问资源

点击下面的链接,下载本资料的 PDF 文件。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

查看报告预定一个演示
下载PDF
查看资源
分享到
想了解更多信息?

分享到
作者
Charlie Eriksen
发表于2021年10月18日

分享到

10月初,Apache发布了2.4.49版本,修复了一个路径遍历和远程代码执行漏洞,随后又发布了2.4.50版本,以解决2.4.49版本修复不完整的问题。也许你已经在社交媒体上看到了关于更新到最新版本以避免这些风险的重要性的讨论,因为根据一些估计,Apache为25%的互联网提供动力。但这是怎么回事呢?这里存在多大的风险?

为什么不自己尝试一下呢? 

我们已经建立了一个任务来展示真实环境中的风险,并将其公开供大家尝试。在这个任务中,我们将引导你了解路径穿越漏洞如何影响你的基础设施和应用程序。点击下面直接进入,或继续阅读以了解更多关于该漏洞的细节。

试用阿帕奇CVE-2021-41773任务的标语
转到公共使命


关于路径穿越漏洞 

该漏洞是在2.4.49版本中引入的(由于URL规范化功能的改变),其中引入了一个新的路径规范化功能。不幸的是,它未能正确规范URL编码的路径。这使得如果不存在以下配置,就有可能进行路径遍历攻击

拒绝或允许对目录文件系统的访问


而如果mod_cgi 被启用,它也可以被利用成为一个远程代码执行的漏洞。但是,让我们首先挖掘一下URL编码,以更好地了解出错的原因。

URL 编码

在最基本的情况下,该漏洞的发生是由于缺乏对具有URL编码的URL的考虑。新引入的路径规范化功能没有完全处理点状物是URL编码的情况。 

请记住,要进行路径遍历攻击,你需要用.../这个序列进行遍历。然而,规范化函数足够聪明,可以将其剥离出来。那么你是怎么做的呢?你可以将.(Dot)编码为%2e,并使用.%2e/这样的序列。这在很多情况下对Apache 2.4.40都有效。但你也可以更进一步,对它进行双重编码。.%2e/ 的URL编码版本是.%252e/。这进一步能够绕过Apache试图进行的规范化。

但有一个问题

如果有人想直接在他们的浏览器中尝试利用这个漏洞,他们不会成功。这是由于浏览器也试图将发送到服务器的URL规范化。这意味着,即使是我们的双重编码序列也会被删除。这也意味着我们不能简单地用浏览器来证明这一点。

你可以通过使用-path-as-is 标志来证明这一点,这可以防止它在发送URL之前对其进行规范化。

带链接的Curl路径代码

预防和缓解

为了完全防止这个问题,重要的是保持与Apache的最新补丁同步。具体来说,你至少要升级到2.4.51。但定期升级以保持最新也是一个好的做法。

如果你运行的是2.4.49,为了减轻这个问题,请确保你在你的Apache配置中包含以下内容。

带有allowoverride none和require all denied规则的目录代码标签

为了防止远程代码执行,如果你不使用mod_cgi ,请禁用它。

亲身体验其影响

有兴趣探究到底发生了什么,并亲自尝试一下吗? 


目录

下载PDF
查看资源
想了解更多信息?

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

预定一个演示下载
分享到
资源中心
资源中心