亲身体验导致近期 Apache 故障的路径遍历漏洞所带来的影响

10 月初,Apache 发布了 2.4.49 版本以修复 路径遍历和远程代码执行漏洞,随后又发布了 2.4.50 版本,以解决 2.4.49 中修复方案不完整的问题。鉴于 据估计 Apache 支撑着全球 25% 的互联网流量,您可能已经在社交媒体上看到过关于更新至最新版本以规避这些风险的重要性。但究竟是怎么回事?这里到底存在多大的风险?
何不亲自尝试一下?
我们构建了一个任务来演示真实环境中的这些风险,并将其公开供所有人体验。在此任务中,我们将带您了解路径遍历漏洞如何影响您的基础设施和应用程序。点击下方立即开始,或继续阅读以深入了解该漏洞的详情。

关于路径遍历漏洞
该漏洞是在 2.4.49 版本中引入的(起因是 URL 规范化函数的变更),当时引入了一个新的路径规范化函数。遗憾的是,它未能正确规范化 URL 编码的路径。如果未进行以下配置,则可能导致 路径遍历攻击:
.avif)
如果启用了 mod_cgi ,它还可能被利用为远程代码执行漏洞。但让我们先深入探讨 URL 编码,以更好地理解问题所在。
URL 编码
从最基本的层面来看,该漏洞的产生是因为未充分考虑 URL 编码的情况。新引入的路径规范化函数未能完全处理点号被 URL 编码的情况。
请记住,要进行路径遍历攻击,您需要使用 ../ 序列进行遍历。然而,规范化函数能够识别并将其剔除。那么该怎么办呢?您可以将 .(点号)URL 编码为 %2e,并使用类似 .%2e/ 的序列。这在许多针对 Apache 2.4.40 的情况下是有效的。但您还可以更进一步,进行双重编码。 .%2e/ 的 URL 编码版本是 .%252e/。这进一步绕过了 Apache 的规范化尝试。
但有一个陷阱
如果有人想直接在浏览器中尝试利用此漏洞,他们是不会成功的。这是因为浏览器也会尝试规范化发送到服务器的 URL。这意味着即使是我们使用的双重编码序列也会被移除。这也意味着我们不能简单地使用浏览器来演示此漏洞。
您可以使用 cURL 并配合 --path-as-is 标志来演示,该标志可防止其在发送前对 URL 进行规范化:
.avif)
预防与缓解
要彻底防止此问题,及时更新 Apache 的最新补丁至关重要。具体而言,您至少应升级到 2.4.51 版本。此外,养成定期升级的良好习惯以保持系统处于最新状态也是明智之举。
如果您正在运行 2.4.49 版本,为缓解此问题,请确保在您的 Apache 配置中包含以下内容:
.avif)
为防止远程代码执行,请禁用 mod_cgi (如果您未使用该模块)。
亲身体验其影响
想深入了解事件始末并亲自尝试吗?
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)