程序员征服安全:共享与学习系列-远程文件包含

阅读本博客系列的人可能会注意到远程文件包含漏洞与前面讨论的本地文件包含和路径遍历漏洞之间有很多相似之处。它们的根本原因是相似的,推荐的修复方法也是如此。
在许多方面,远程文件包含漏洞比本地文件漏洞危险得多,也更容易被利用。因此,应尽快找到并予以补救。或者更好的是,Web 应用程序的设计应该从一开始就防止其发生。
在本集中,我们将学习:
- 黑客如何利用远程文件包含漏洞
- 为什么允许远程包含文件很危险
- 可以解决此问题的技术。
攻击者如何利用远程文件包含?
远程文件包含漏洞利用了大多数编程框架中存在的 “动态文件包含” 命令或机制。该功能旨在允许开发人员使用位于辅助服务器上的文件在应用程序服务器上执行活动。显然,如果落入坏人之手,这可能会很危险。
攻击者如何利用这种能力,是找到任何允许不受控制的用户输入的网站或应用程序,这些输入可能来自诸如HTTP标头或交互式表单中的输入区域之类的东西。他们以此为起点来生成文件包含命令。
例如,如果网站使用 GET 函数加载页面,例如 page = request.getParameter(“page');包含页面;则攻击者可以使用页面命令发送查询,但使用他们控制的网站网址和要执行的文件的文件路径。然后,查询被传递到服务器,并在主机上执行远程文件。允许该活动,因为它现在是可信应用程序的一部分。
为什么远程文件包含漏洞很危险?
远程文件包含所构成的危险程度非常高。与本地文件包含漏洞不同,在本地文件包含漏洞中,攻击者运行的文件必须存在于主机上,也可以由攻击者通过反复试验发现,远程文件包含没有类似的限制。显然,攻击者知道他们想要利用的文件的位置,因为它们可能存在于自己的计算机或他们控制的站点上。这些文件也可以由他们手动选择,在漏洞利用之前不需要存在于目标计算机上。该文件甚至可能包含专门为攻击远程主机而编写的脚本。
简而言之,一旦攻击者能够发现并利用远程文件包含漏洞,就没有什么可以阻止他们完全控制应用程序甚至整个站点。当然,存储在那里的任何数据都无法免受他们的入侵。
移除远程文件包含漏洞
切勿允许用户输入直接传递给文件包含命令以供执行。取而代之的是,使用命令的间接参考映射,只从那里执行命令。间接参考地图将不受信任的用户输入映射到服务器上的一组硬编码的可信值。一定要将用户可以输入数据的所有区域列入白名单,不要忘记在该列表中包含 HTTP 标头、表单参数甚至 cookie。这样做将关闭想要创建文件包含命令的攻击者可以使用的任何窗口。
作为奖励,对用户生成的内容进行适当的清理和验证以及使用参考地图来执行命令不仅可以消除远程文件包含漏洞,还可以消除许多其他漏洞,包括该错误的危险表兄弟,本地文件包含和路径遍历漏洞。
有关远程文件包含的更多信息
要进一步阅读,你可以看看 OWASP 参考指南 用于远程文件包含漏洞。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
Lorem Issum diam quis eim leboutis ein selerisque lobortis sepitis beelrisque lobortis sepitis celerisque lobortis celeriskue filmentis celeriskue filmentis celeriskue diam
%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

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.


