编码员征服安全。分享与学习系列 - 本地文件包含和路径穿越
与许多漏洞不同的是,利用本地文件包含和路径遍历过程来达到邪恶的目的,需要一个足够熟练的攻击者,相当多的时间,也许还有一点运气。这并不是说这个漏洞可以被忽视。熟练的攻击者可以利用它使内部文件对组织不利,绘制目录结构图,甚至窃取密码和用户信息,用于危险的二次攻击。
在这一集里,我们将学习。
- 黑客如何利用本地文件包含和路径遍历漏洞
- 为什么允许不受限制的本地文件包含和路径遍历会有危险?
- 可以采用的政策和技术来发现和解决这个问题。
攻击者如何利用本地文件包含和路径遍历?
经典的电视侦探科伦坡(Columbo)过去总是在提供一个有价值的信息之前说:"还有一件事",这个信息将破解手头的案件。这句话在当时看来无关紧要,而且几乎总是被嫌疑人忽略,但事实证明,它总是成为他们的败笔。本地文件包含和路径穿越漏洞就很像这样。
本地文件包含和路径穿越漏洞使用了大多数编程框架(如ASP、JSP和PHP脚本)中存在的动态文件包含机制。对于本地文件包含,攻击者将存在于本地服务器上的文件名滑入网络应用程序的某个区域,如标题或表单输入区。应用程序像正常一样处理主要输入,但也处理include(page)或类似命令。在路径遍历中,攻击者定义了一个可疑文件的路径,通常使用点、点和斜线(.../)字符作为变量。这非常像Columbo,因为黑客真的不关心参数的第一部分。这只是他们在最后添加 "只是多了一件事 "的一种手段。
在这两种情况下,攻击者通常必须进行大量的试验和错误。除非他们非常熟悉网站的结构,否则猜测路径配置和文件名可能需要很长的时间。也就是说,大多数网站都遵循特定的模式,并且有或多或少类似的目录和文件名。因此,它可能不会像你想象的那样花费很长时间。鉴于报酬可能非常丰厚,一旦发现本地文件包含和路径遍历漏洞,黑客就会有很大的动力去尝试利用。
为什么本地文件包含和路径遍历漏洞是危险的?
本地文件包含和路径遍历漏洞很危险,因为它们可以让攻击者获得对敏感或关键文件的访问。对于数据文件,危险在于黑客可以获得一些有价值的东西,如用户密码或其他个人信息。一个主要目标通常是密码或用户配置文件,因为这将提供对网站其他部分的访问。数据库也是主要目标。在最坏的情况下,本地文件包含和路径穿越漏洞可以让攻击者窃取数据库的全部内容。
对于可执行文件来说,危险在于获得对它们的访问权可能会使攻击者进行恶意活动,如破坏网站的一部分,甚至通过浪费系统资源来发动某种类型的内部拒绝服务攻击。但是,危险的全部范围只受限于攻击者的聪明才智和技能,以及他们能够访问目标服务器上已经存在的任何文件。
消除本地文件包含和路径遍历所带来的威胁
通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞所带来的危险。要记住的最重要的事情是永远不要允许用户在 "文件包含 "或其他具有类似功能的命令中输入。如果一个应用程序必须允许它,不要直接传递它。相反,使用间接参考图。间接引用映射将用户的输入映射到一组硬编码的可信值,然后可以安全使用。
与其他许多漏洞一样,要特别注意所有用户控制的输入区域,如cookies、HTTP头和表单参数。允许的输入应该被列入白名单,而其他一切都被明确拒绝。在无法做到这一点的情况下,使用输入验证来严格规范允许的数值,如数字、字母数字值等。
关于本地文件包含和路径穿越的更多信息
要进一步阅读,你可以看一下OWASP关于本地文件包含和路径穿越漏洞的测试指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

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


与许多漏洞不同的是,利用本地文件包含和路径遍历过程来达到邪恶的目的,需要一个足够熟练的攻击者,相当多的时间,也许还有一点运气。这并不是说这个漏洞可以被忽视。熟练的攻击者可以利用它使内部文件对组织不利,绘制目录结构图,甚至窃取密码和用户信息,用于危险的二次攻击。
在这一集里,我们将学习。
- 黑客如何利用本地文件包含和路径遍历漏洞
- 为什么允许不受限制的本地文件包含和路径遍历会有危险?
- 可以采用的政策和技术来发现和解决这个问题。
攻击者如何利用本地文件包含和路径遍历?
经典的电视侦探科伦坡(Columbo)过去总是在提供一个有价值的信息之前说:"还有一件事",这个信息将破解手头的案件。这句话在当时看来无关紧要,而且几乎总是被嫌疑人忽略,但事实证明,它总是成为他们的败笔。本地文件包含和路径穿越漏洞就很像这样。
本地文件包含和路径穿越漏洞使用了大多数编程框架(如ASP、JSP和PHP脚本)中存在的动态文件包含机制。对于本地文件包含,攻击者将存在于本地服务器上的文件名滑入网络应用程序的某个区域,如标题或表单输入区。应用程序像正常一样处理主要输入,但也处理include(page)或类似命令。在路径遍历中,攻击者定义了一个可疑文件的路径,通常使用点、点和斜线(.../)字符作为变量。这非常像Columbo,因为黑客真的不关心参数的第一部分。这只是他们在最后添加 "只是多了一件事 "的一种手段。
在这两种情况下,攻击者通常必须进行大量的试验和错误。除非他们非常熟悉网站的结构,否则猜测路径配置和文件名可能需要很长的时间。也就是说,大多数网站都遵循特定的模式,并且有或多或少类似的目录和文件名。因此,它可能不会像你想象的那样花费很长时间。鉴于报酬可能非常丰厚,一旦发现本地文件包含和路径遍历漏洞,黑客就会有很大的动力去尝试利用。
为什么本地文件包含和路径遍历漏洞是危险的?
本地文件包含和路径遍历漏洞很危险,因为它们可以让攻击者获得对敏感或关键文件的访问。对于数据文件,危险在于黑客可以获得一些有价值的东西,如用户密码或其他个人信息。一个主要目标通常是密码或用户配置文件,因为这将提供对网站其他部分的访问。数据库也是主要目标。在最坏的情况下,本地文件包含和路径穿越漏洞可以让攻击者窃取数据库的全部内容。
对于可执行文件来说,危险在于获得对它们的访问权可能会使攻击者进行恶意活动,如破坏网站的一部分,甚至通过浪费系统资源来发动某种类型的内部拒绝服务攻击。但是,危险的全部范围只受限于攻击者的聪明才智和技能,以及他们能够访问目标服务器上已经存在的任何文件。
消除本地文件包含和路径遍历所带来的威胁
通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞所带来的危险。要记住的最重要的事情是永远不要允许用户在 "文件包含 "或其他具有类似功能的命令中输入。如果一个应用程序必须允许它,不要直接传递它。相反,使用间接参考图。间接引用映射将用户的输入映射到一组硬编码的可信值,然后可以安全使用。
与其他许多漏洞一样,要特别注意所有用户控制的输入区域,如cookies、HTTP头和表单参数。允许的输入应该被列入白名单,而其他一切都被明确拒绝。在无法做到这一点的情况下,使用输入验证来严格规范允许的数值,如数字、字母数字值等。
关于本地文件包含和路径穿越的更多信息
要进一步阅读,你可以看一下OWASP关于本地文件包含和路径穿越漏洞的测试指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。

与许多漏洞不同的是,利用本地文件包含和路径遍历过程来达到邪恶的目的,需要一个足够熟练的攻击者,相当多的时间,也许还有一点运气。这并不是说这个漏洞可以被忽视。熟练的攻击者可以利用它使内部文件对组织不利,绘制目录结构图,甚至窃取密码和用户信息,用于危险的二次攻击。
在这一集里,我们将学习。
- 黑客如何利用本地文件包含和路径遍历漏洞
- 为什么允许不受限制的本地文件包含和路径遍历会有危险?
- 可以采用的政策和技术来发现和解决这个问题。
攻击者如何利用本地文件包含和路径遍历?
经典的电视侦探科伦坡(Columbo)过去总是在提供一个有价值的信息之前说:"还有一件事",这个信息将破解手头的案件。这句话在当时看来无关紧要,而且几乎总是被嫌疑人忽略,但事实证明,它总是成为他们的败笔。本地文件包含和路径穿越漏洞就很像这样。
本地文件包含和路径穿越漏洞使用了大多数编程框架(如ASP、JSP和PHP脚本)中存在的动态文件包含机制。对于本地文件包含,攻击者将存在于本地服务器上的文件名滑入网络应用程序的某个区域,如标题或表单输入区。应用程序像正常一样处理主要输入,但也处理include(page)或类似命令。在路径遍历中,攻击者定义了一个可疑文件的路径,通常使用点、点和斜线(.../)字符作为变量。这非常像Columbo,因为黑客真的不关心参数的第一部分。这只是他们在最后添加 "只是多了一件事 "的一种手段。
在这两种情况下,攻击者通常必须进行大量的试验和错误。除非他们非常熟悉网站的结构,否则猜测路径配置和文件名可能需要很长的时间。也就是说,大多数网站都遵循特定的模式,并且有或多或少类似的目录和文件名。因此,它可能不会像你想象的那样花费很长时间。鉴于报酬可能非常丰厚,一旦发现本地文件包含和路径遍历漏洞,黑客就会有很大的动力去尝试利用。
为什么本地文件包含和路径遍历漏洞是危险的?
本地文件包含和路径遍历漏洞很危险,因为它们可以让攻击者获得对敏感或关键文件的访问。对于数据文件,危险在于黑客可以获得一些有价值的东西,如用户密码或其他个人信息。一个主要目标通常是密码或用户配置文件,因为这将提供对网站其他部分的访问。数据库也是主要目标。在最坏的情况下,本地文件包含和路径穿越漏洞可以让攻击者窃取数据库的全部内容。
对于可执行文件来说,危险在于获得对它们的访问权可能会使攻击者进行恶意活动,如破坏网站的一部分,甚至通过浪费系统资源来发动某种类型的内部拒绝服务攻击。但是,危险的全部范围只受限于攻击者的聪明才智和技能,以及他们能够访问目标服务器上已经存在的任何文件。
消除本地文件包含和路径遍历所带来的威胁
通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞所带来的危险。要记住的最重要的事情是永远不要允许用户在 "文件包含 "或其他具有类似功能的命令中输入。如果一个应用程序必须允许它,不要直接传递它。相反,使用间接参考图。间接引用映射将用户的输入映射到一组硬编码的可信值,然后可以安全使用。
与其他许多漏洞一样,要特别注意所有用户控制的输入区域,如cookies、HTTP头和表单参数。允许的输入应该被列入白名单,而其他一切都被明确拒绝。在无法做到这一点的情况下,使用输入验证来严格规范允许的数值,如数字、字母数字值等。
关于本地文件包含和路径穿越的更多信息
要进一步阅读,你可以看一下OWASP关于本地文件包含和路径穿越漏洞的测试指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
与许多漏洞不同的是,利用本地文件包含和路径遍历过程来达到邪恶的目的,需要一个足够熟练的攻击者,相当多的时间,也许还有一点运气。这并不是说这个漏洞可以被忽视。熟练的攻击者可以利用它使内部文件对组织不利,绘制目录结构图,甚至窃取密码和用户信息,用于危险的二次攻击。
在这一集里,我们将学习。
- 黑客如何利用本地文件包含和路径遍历漏洞
- 为什么允许不受限制的本地文件包含和路径遍历会有危险?
- 可以采用的政策和技术来发现和解决这个问题。
攻击者如何利用本地文件包含和路径遍历?
经典的电视侦探科伦坡(Columbo)过去总是在提供一个有价值的信息之前说:"还有一件事",这个信息将破解手头的案件。这句话在当时看来无关紧要,而且几乎总是被嫌疑人忽略,但事实证明,它总是成为他们的败笔。本地文件包含和路径穿越漏洞就很像这样。
本地文件包含和路径穿越漏洞使用了大多数编程框架(如ASP、JSP和PHP脚本)中存在的动态文件包含机制。对于本地文件包含,攻击者将存在于本地服务器上的文件名滑入网络应用程序的某个区域,如标题或表单输入区。应用程序像正常一样处理主要输入,但也处理include(page)或类似命令。在路径遍历中,攻击者定义了一个可疑文件的路径,通常使用点、点和斜线(.../)字符作为变量。这非常像Columbo,因为黑客真的不关心参数的第一部分。这只是他们在最后添加 "只是多了一件事 "的一种手段。
在这两种情况下,攻击者通常必须进行大量的试验和错误。除非他们非常熟悉网站的结构,否则猜测路径配置和文件名可能需要很长的时间。也就是说,大多数网站都遵循特定的模式,并且有或多或少类似的目录和文件名。因此,它可能不会像你想象的那样花费很长时间。鉴于报酬可能非常丰厚,一旦发现本地文件包含和路径遍历漏洞,黑客就会有很大的动力去尝试利用。
为什么本地文件包含和路径遍历漏洞是危险的?
本地文件包含和路径遍历漏洞很危险,因为它们可以让攻击者获得对敏感或关键文件的访问。对于数据文件,危险在于黑客可以获得一些有价值的东西,如用户密码或其他个人信息。一个主要目标通常是密码或用户配置文件,因为这将提供对网站其他部分的访问。数据库也是主要目标。在最坏的情况下,本地文件包含和路径穿越漏洞可以让攻击者窃取数据库的全部内容。
对于可执行文件来说,危险在于获得对它们的访问权可能会使攻击者进行恶意活动,如破坏网站的一部分,甚至通过浪费系统资源来发动某种类型的内部拒绝服务攻击。但是,危险的全部范围只受限于攻击者的聪明才智和技能,以及他们能够访问目标服务器上已经存在的任何文件。
消除本地文件包含和路径遍历所带来的威胁
通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞所带来的危险。要记住的最重要的事情是永远不要允许用户在 "文件包含 "或其他具有类似功能的命令中输入。如果一个应用程序必须允许它,不要直接传递它。相反,使用间接参考图。间接引用映射将用户的输入映射到一组硬编码的可信值,然后可以安全使用。
与其他许多漏洞一样,要特别注意所有用户控制的输入区域,如cookies、HTTP头和表单参数。允许的输入应该被列入白名单,而其他一切都被明确拒绝。在无法做到这一点的情况下,使用输入验证来严格规范允许的数值,如数字、字母数字值等。
关于本地文件包含和路径穿越的更多信息
要进一步阅读,你可以看一下OWASP关于本地文件包含和路径穿越漏洞的测试指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。