程序员征服安全:分享与学习系列 - 本地文件包含与路径遍历

与许多漏洞不同,利用本地文件包含和路径遍历进行恶意攻击,不仅需要攻击者具备相当的技能,还要耗费大量时间,甚至还需要一点运气。但这并不意味着可以忽视此类漏洞。高明的攻击者可以利用它来获取组织内部文件、探测目录结构,甚至窃取可用于后续危险攻击的密码和用户信息。
在本期节目中,我们将学习:
- 黑客如何利用本地文件包含和路径遍历漏洞
- 为何允许不受限制的本地文件包含和路径遍历会带来危险
- 可用于发现并修复此问题的策略与技术。
攻击者如何利用本地文件包含和路径遍历?
经典美剧侦探科伦坡(Columbo)总是在抛出关键线索、一举破案前说一句:“还有一件事”。当时听起来似乎无关紧要,嫌疑人也往往不以为意,但这却总是成为他们落网的关键。本地文件包含和路径遍历漏洞与之非常相似。
本地文件包含和路径遍历漏洞利用了大多数编程框架(如 ASP、JSP 和 PHP 脚本)中存在的动态文件包含机制。在本地文件包含中,攻击者会将服务器上的文件名插入到 Web 应用程序的特定区域(如标头或表单输入区)。应用程序在处理正常输入的同时,也会执行 include(page) 或类似的命令。在路径遍历中,攻击者通常使用点、点和斜杠(../)字符作为变量来定义目标文件的路径。这就像科伦坡一样,黑客并不在意论点的第一部分,那仅仅是他们为了在最后加上“还有一件事”而使用的手段。
无论哪种情况,攻击者通常都需要进行大量的反复试验。除非他们非常熟悉网站结构,否则猜测路径配置和文件名可能需要很长时间。话虽如此,大多数网站都遵循特定的模式,目录和文件名也大同小异。因此,这可能并不像你想象的那么耗时。考虑到潜在的丰厚回报,黑客一旦发现此类漏洞,便有极大的动力去尝试利用。
为什么本地文件包含和路径遍历漏洞很危险?
本地文件包含和路径遍历漏洞之所以危险,是因为它们可能允许攻击者访问敏感或关键文件。对于数据文件,危险在于黑客可能获取用户密码或其他个人信息等有价值的内容。密码或用户配置文件通常是首要目标,因为这能提供对网站其余部分的访问权限。数据库也是主要目标。在最坏的情况下,本地文件包含和路径遍历漏洞可能允许攻击者窃取整个数据库的内容。
对于可执行文件,危险在于获取访问权限后,攻击者可能执行恶意活动,例如破坏网站部分功能,甚至通过耗尽系统资源来发动某种内部拒绝服务攻击。但危险的程度仅受限于攻击者的创造力和技能,以及他们能在目标服务器上访问到的现有文件。
消除本地文件包含和路径遍历带来的威胁
通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞带来的危险。最重要的一点是,切勿在“文件包含”或其他类似功能的命令中允许用户输入。如果应用程序必须允许此类操作,请勿直接传递输入内容。相反,应使用间接引用映射。间接引用映射将用户输入映射到一组硬编码的受信任值,从而实现安全使用。
与其他许多漏洞一样,请特别注意所有用户可控的输入区域,如 Cookie、HTTP 标头和表单参数。应对允许的输入设置白名单,并明确拒绝其他所有内容。如果无法做到这一点,请使用输入验证来严格限制允许的值,例如数字、字母数字等。
关于本地文件包含和路径遍历的更多信息
如需进一步阅读,您可以查看 OWASP 测试指南,了解本地文件包含和路径遍历的利用方式。您还可以通过 免费演示 来测试您新学到的防御知识,该演示来自 Secure Code Warrior 平台,旨在培训网络安全团队成为顶尖的网络战士。要了解更多关于击败此漏洞及其他各类威胁的信息,请访问 Secure Code Warrior 博客。
在 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)