编码员征服安全。分享与学习系列 - 远程文件包含
阅读本系列博客的朋友可能会注意到远程文件包含漏洞与之前讨论的本地文件包含和路径遍历漏洞之间有很多相似之处。它们的根本原因是相似的,推荐的修复方法也是如此。
在许多方面,远程文件包含漏洞比其本地文件对应的漏洞要危险得多,也更容易被利用。因此,应该尽快发现并补救它。或者更好的是,网络应用的设计应该首先防止它的发生。
在这一集里,我们将学习。
- 黑客如何利用远程文件包含漏洞
- 为什么允许远程文件包含是危险的
- 可以解决这个问题的技术。
攻击者是如何利用远程文件包含的?
远程文件包含漏洞利用了大多数编程框架中存在的 "动态文件包含 "命令或机制。这种能力的目的是允许开发人员使用位于二级服务器上的文件来执行应用服务器上的活动。显然,如果落入坏人之手,这可能是危险的。
攻击者如何利用这种能力是通过找到任何允许不受控制的用户输入的网站或应用程序,这可能来自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 博客。