编码员征服安全。分享与学习系列 - 远程文件包含
阅读本系列博客的朋友可能会注意到远程文件包含漏洞与之前讨论的本地文件包含和路径遍历漏洞之间有很多相似之处。它们的根本原因是相似的,推荐的修复方法也是如此。
在许多方面,远程文件包含漏洞比其本地文件对应的漏洞要危险得多,也更容易被利用。因此,应该尽快发现并补救它。或者更好的是,网络应用的设计应该首先防止它的发生。
在这一集里,我们将学习。
- 黑客如何利用远程文件包含漏洞
- 为什么允许远程文件包含是危险的
- 可以解决这个问题的技术。
攻击者是如何利用远程文件包含的?
远程文件包含漏洞利用了大多数编程框架中存在的 "动态文件包含 "命令或机制。这种能力的目的是允许开发人员使用位于二级服务器上的文件来执行应用服务器上的活动。显然,如果落入坏人之手,这可能是危险的。
攻击者如何利用这种能力是通过找到任何允许不受控制的用户输入的网站或应用程序,这可能来自HTTP头或交互式表格中的输入区等东西。他们将此作为一个启动点来生成文件包含命令。
例如,如果一个网站使用GET功能加载页面,如page = request.getParameter("page'); include page; 那么攻击者可以使用page命令发送一个查询,但要有一个他们控制的网站的URL和他们想执行的文件的路径。然后查询被传递给服务器,远程文件在主机上被执行。这个活动是允许的,因为它现在是受信任的应用程序的一部分。
为什么远程文件包含漏洞是危险的?
远程文件包含所带来的危险程度极高。与本地文件包含漏洞不同的是,攻击者运行的文件必须存在于主机上,而且攻击者还要通过试验和错误来发现,而远程文件包含则没有这样的限制。显然,攻击者知道他们想要利用的文件的位置,因为这些文件可能存在于他们自己的机器上,或者他们控制的网站上。这些文件也可以由他们自己选择,不需要在利用前存在于目标机器上。该文件甚至可能包括专门为利用远程主机而编写的脚本。
简而言之,一旦攻击者能够找到并利用远程文件包含漏洞,就没有什么能阻止他们获得对一个应用程序甚至整个网站的完全控制。当然,存储在那里的任何数据都不会对他们的入侵感到安全。
移除远程文件包含漏洞
永远不要让用户输入直接传递给文件包含命令执行。相反,使用命令的间接参考图,只从那里执行命令。间接参考图将不受信任的用户输入映射到服务器上一组硬编码的可信值。要确保将用户可以输入数据的任何区域列入白名单,不要忘记将HTTP头、表单参数甚至cookies都列入该名单。这样做将关闭任何想要创建文件包含命令的攻击者可以使用的窗口。
作为奖励,对用户生成的内容进行适当的消毒和验证,并采用参考地图来执行命令,不仅可以压制远程文件包含漏洞,还可以压制其他一些漏洞,包括这个漏洞的危险表弟,本地文件包含和路径遍历漏洞。
关于远程文件包含的更多信息
要进一步阅读,你可以看一下OWASP的远程文件包含漏洞参考指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

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


阅读本系列博客的朋友可能会注意到远程文件包含漏洞与之前讨论的本地文件包含和路径遍历漏洞之间有很多相似之处。它们的根本原因是相似的,推荐的修复方法也是如此。
在许多方面,远程文件包含漏洞比其本地文件对应的漏洞要危险得多,也更容易被利用。因此,应该尽快发现并补救它。或者更好的是,网络应用的设计应该首先防止它的发生。
在这一集里,我们将学习。
- 黑客如何利用远程文件包含漏洞
- 为什么允许远程文件包含是危险的
- 可以解决这个问题的技术。
攻击者是如何利用远程文件包含的?
远程文件包含漏洞利用了大多数编程框架中存在的 "动态文件包含 "命令或机制。这种能力的目的是允许开发人员使用位于二级服务器上的文件来执行应用服务器上的活动。显然,如果落入坏人之手,这可能是危险的。
攻击者如何利用这种能力是通过找到任何允许不受控制的用户输入的网站或应用程序,这可能来自HTTP头或交互式表格中的输入区等东西。他们将此作为一个启动点来生成文件包含命令。
例如,如果一个网站使用GET功能加载页面,如page = request.getParameter("page'); include page; 那么攻击者可以使用page命令发送一个查询,但要有一个他们控制的网站的URL和他们想执行的文件的路径。然后查询被传递给服务器,远程文件在主机上被执行。这个活动是允许的,因为它现在是受信任的应用程序的一部分。
为什么远程文件包含漏洞是危险的?
远程文件包含所带来的危险程度极高。与本地文件包含漏洞不同的是,攻击者运行的文件必须存在于主机上,而且攻击者还要通过试验和错误来发现,而远程文件包含则没有这样的限制。显然,攻击者知道他们想要利用的文件的位置,因为这些文件可能存在于他们自己的机器上,或者他们控制的网站上。这些文件也可以由他们自己选择,不需要在利用前存在于目标机器上。该文件甚至可能包括专门为利用远程主机而编写的脚本。
简而言之,一旦攻击者能够找到并利用远程文件包含漏洞,就没有什么能阻止他们获得对一个应用程序甚至整个网站的完全控制。当然,存储在那里的任何数据都不会对他们的入侵感到安全。
移除远程文件包含漏洞
永远不要让用户输入直接传递给文件包含命令执行。相反,使用命令的间接参考图,只从那里执行命令。间接参考图将不受信任的用户输入映射到服务器上一组硬编码的可信值。要确保将用户可以输入数据的任何区域列入白名单,不要忘记将HTTP头、表单参数甚至cookies都列入该名单。这样做将关闭任何想要创建文件包含命令的攻击者可以使用的窗口。
作为奖励,对用户生成的内容进行适当的消毒和验证,并采用参考地图来执行命令,不仅可以压制远程文件包含漏洞,还可以压制其他一些漏洞,包括这个漏洞的危险表弟,本地文件包含和路径遍历漏洞。
关于远程文件包含的更多信息
要进一步阅读,你可以看一下OWASP的远程文件包含漏洞参考指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。

阅读本系列博客的朋友可能会注意到远程文件包含漏洞与之前讨论的本地文件包含和路径遍历漏洞之间有很多相似之处。它们的根本原因是相似的,推荐的修复方法也是如此。
在许多方面,远程文件包含漏洞比其本地文件对应的漏洞要危险得多,也更容易被利用。因此,应该尽快发现并补救它。或者更好的是,网络应用的设计应该首先防止它的发生。
在这一集里,我们将学习。
- 黑客如何利用远程文件包含漏洞
- 为什么允许远程文件包含是危险的
- 可以解决这个问题的技术。
攻击者是如何利用远程文件包含的?
远程文件包含漏洞利用了大多数编程框架中存在的 "动态文件包含 "命令或机制。这种能力的目的是允许开发人员使用位于二级服务器上的文件来执行应用服务器上的活动。显然,如果落入坏人之手,这可能是危险的。
攻击者如何利用这种能力是通过找到任何允许不受控制的用户输入的网站或应用程序,这可能来自HTTP头或交互式表格中的输入区等东西。他们将此作为一个启动点来生成文件包含命令。
例如,如果一个网站使用GET功能加载页面,如page = request.getParameter("page'); include page; 那么攻击者可以使用page命令发送一个查询,但要有一个他们控制的网站的URL和他们想执行的文件的路径。然后查询被传递给服务器,远程文件在主机上被执行。这个活动是允许的,因为它现在是受信任的应用程序的一部分。
为什么远程文件包含漏洞是危险的?
远程文件包含所带来的危险程度极高。与本地文件包含漏洞不同的是,攻击者运行的文件必须存在于主机上,而且攻击者还要通过试验和错误来发现,而远程文件包含则没有这样的限制。显然,攻击者知道他们想要利用的文件的位置,因为这些文件可能存在于他们自己的机器上,或者他们控制的网站上。这些文件也可以由他们自己选择,不需要在利用前存在于目标机器上。该文件甚至可能包括专门为利用远程主机而编写的脚本。
简而言之,一旦攻击者能够找到并利用远程文件包含漏洞,就没有什么能阻止他们获得对一个应用程序甚至整个网站的完全控制。当然,存储在那里的任何数据都不会对他们的入侵感到安全。
移除远程文件包含漏洞
永远不要让用户输入直接传递给文件包含命令执行。相反,使用命令的间接参考图,只从那里执行命令。间接参考图将不受信任的用户输入映射到服务器上一组硬编码的可信值。要确保将用户可以输入数据的任何区域列入白名单,不要忘记将HTTP头、表单参数甚至cookies都列入该名单。这样做将关闭任何想要创建文件包含命令的攻击者可以使用的窗口。
作为奖励,对用户生成的内容进行适当的消毒和验证,并采用参考地图来执行命令,不仅可以压制远程文件包含漏洞,还可以压制其他一些漏洞,包括这个漏洞的危险表弟,本地文件包含和路径遍历漏洞。
关于远程文件包含的更多信息
要进一步阅读,你可以看一下OWASP的远程文件包含漏洞参考指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
阅读本系列博客的朋友可能会注意到远程文件包含漏洞与之前讨论的本地文件包含和路径遍历漏洞之间有很多相似之处。它们的根本原因是相似的,推荐的修复方法也是如此。
在许多方面,远程文件包含漏洞比其本地文件对应的漏洞要危险得多,也更容易被利用。因此,应该尽快发现并补救它。或者更好的是,网络应用的设计应该首先防止它的发生。
在这一集里,我们将学习。
- 黑客如何利用远程文件包含漏洞
- 为什么允许远程文件包含是危险的
- 可以解决这个问题的技术。
攻击者是如何利用远程文件包含的?
远程文件包含漏洞利用了大多数编程框架中存在的 "动态文件包含 "命令或机制。这种能力的目的是允许开发人员使用位于二级服务器上的文件来执行应用服务器上的活动。显然,如果落入坏人之手,这可能是危险的。
攻击者如何利用这种能力是通过找到任何允许不受控制的用户输入的网站或应用程序,这可能来自HTTP头或交互式表格中的输入区等东西。他们将此作为一个启动点来生成文件包含命令。
例如,如果一个网站使用GET功能加载页面,如page = request.getParameter("page'); include page; 那么攻击者可以使用page命令发送一个查询,但要有一个他们控制的网站的URL和他们想执行的文件的路径。然后查询被传递给服务器,远程文件在主机上被执行。这个活动是允许的,因为它现在是受信任的应用程序的一部分。
为什么远程文件包含漏洞是危险的?
远程文件包含所带来的危险程度极高。与本地文件包含漏洞不同的是,攻击者运行的文件必须存在于主机上,而且攻击者还要通过试验和错误来发现,而远程文件包含则没有这样的限制。显然,攻击者知道他们想要利用的文件的位置,因为这些文件可能存在于他们自己的机器上,或者他们控制的网站上。这些文件也可以由他们自己选择,不需要在利用前存在于目标机器上。该文件甚至可能包括专门为利用远程主机而编写的脚本。
简而言之,一旦攻击者能够找到并利用远程文件包含漏洞,就没有什么能阻止他们获得对一个应用程序甚至整个网站的完全控制。当然,存储在那里的任何数据都不会对他们的入侵感到安全。
移除远程文件包含漏洞
永远不要让用户输入直接传递给文件包含命令执行。相反,使用命令的间接参考图,只从那里执行命令。间接参考图将不受信任的用户输入映射到服务器上一组硬编码的可信值。要确保将用户可以输入数据的任何区域列入白名单,不要忘记将HTTP头、表单参数甚至cookies都列入该名单。这样做将关闭任何想要创建文件包含命令的攻击者可以使用的窗口。
作为奖励,对用户生成的内容进行适当的消毒和验证,并采用参考地图来执行命令,不仅可以压制远程文件包含漏洞,还可以压制其他一些漏洞,包括这个漏洞的危险表弟,本地文件包含和路径遍历漏洞。
关于远程文件包含的更多信息
要进一步阅读,你可以看一下OWASP的远程文件包含漏洞参考指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。