编码员征服安全。分享与学习系列 - 本地文件包含和路径穿越

发布日期:2019年07月04日
作者:Jaap Karan Singh
案例研究

编码员征服安全。分享与学习系列 - 本地文件包含和路径穿越

发布日期:2019年07月04日
作者:Jaap Karan Singh
查看资源
查看资源

与许多漏洞不同的是,利用本地文件包含和路径遍历过程来达到邪恶的目的,需要一个足够熟练的攻击者,相当多的时间,也许还有一点运气。这并不是说这个漏洞可以被忽视。熟练的攻击者可以利用它使内部文件对组织不利,绘制目录结构图,甚至窃取密码和用户信息,用于危险的二次攻击。

在这一集里,我们将学习。

  • 黑客如何利用本地文件包含和路径遍历漏洞
  • 为什么允许不受限制的本地文件包含和路径遍历会有危险?
  • 可以采用的政策和技术来发现和解决这个问题。

攻击者如何利用本地文件包含和路径遍历?

经典的电视侦探科伦坡(Columbo)过去总是在提供一个有价值的信息之前说:"还有一件事",这个信息将破解手头的案件。这句话在当时看来无关紧要,而且几乎总是被嫌疑人忽略,但事实证明,它总是成为他们的败笔。本地文件包含和路径穿越漏洞就很像这样。

本地文件包含和路径穿越漏洞使用了大多数编程框架(如ASP、JSP和PHP脚本)中存在的动态文件包含机制。对于本地文件包含,攻击者将存在于本地服务器上的文件名滑入网络应用程序的某个区域,如标题或表单输入区。应用程序像正常一样处理主要输入,但也处理include(page)或类似命令。在路径遍历中,攻击者定义了一个可疑文件的路径,通常使用点、点和斜线(.../)字符作为变量。这非常像Columbo,因为黑客真的不关心参数的第一部分。这只是他们在最后添加 "只是多了一件事 "的一种手段。

在这两种情况下,攻击者通常必须进行大量的试验和错误。除非他们非常熟悉网站的结构,否则猜测路径配置和文件名可能需要很长的时间。也就是说,大多数网站都遵循特定的模式,并且有或多或少类似的目录和文件名。因此,它可能不会像你想象的那样花费很长时间。鉴于报酬可能非常丰厚,一旦发现本地文件包含和路径遍历漏洞,黑客就会有很大的动力去尝试利用。

为什么本地文件包含和路径遍历漏洞是危险的?

本地文件包含和路径遍历漏洞很危险,因为它们可以让攻击者获得对敏感或关键文件的访问。对于数据文件,危险在于黑客可以获得一些有价值的东西,如用户密码或其他个人信息。一个主要目标通常是密码或用户配置文件,因为这将提供对网站其他部分的访问。数据库也是主要目标。在最坏的情况下,本地文件包含和路径穿越漏洞可以让攻击者窃取数据库的全部内容。

对于可执行文件来说,危险在于获得对它们的访问权可能会使攻击者进行恶意活动,如破坏网站的一部分,甚至通过浪费系统资源来发动某种类型的内部拒绝服务攻击。但是,危险的全部范围只受限于攻击者的聪明才智和技能,以及他们能够访问目标服务器上已经存在的任何文件。

消除本地文件包含和路径遍历所带来的威胁

通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞所带来的危险。要记住的最重要的事情是永远不要允许用户在 "文件包含 "或其他具有类似功能的命令中输入。如果一个应用程序必须允许它,不要直接传递它。相反,使用间接参考图。间接引用映射将用户的输入映射到一组硬编码的可信值,然后可以安全使用。

与其他许多漏洞一样,要特别注意所有用户控制的输入区域,如cookies、HTTP头和表单参数。允许的输入应该被列入白名单,而其他一切都被明确拒绝。在无法做到这一点的情况下,使用输入验证来严格规范允许的数值,如数字、字母数字值等。

关于本地文件包含和路径穿越的更多信息

要进一步阅读,你可以看一下OWASP关于本地文件包含和路径穿越漏洞的测试指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。

查看资源
查看资源

作者

Jaap Karan Singh

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

编码员征服安全。分享与学习系列 - 本地文件包含和路径穿越

发布日期:2019年07月04日
作者:Jaap Karan Singh

与许多漏洞不同的是,利用本地文件包含和路径遍历过程来达到邪恶的目的,需要一个足够熟练的攻击者,相当多的时间,也许还有一点运气。这并不是说这个漏洞可以被忽视。熟练的攻击者可以利用它使内部文件对组织不利,绘制目录结构图,甚至窃取密码和用户信息,用于危险的二次攻击。

在这一集里,我们将学习。

  • 黑客如何利用本地文件包含和路径遍历漏洞
  • 为什么允许不受限制的本地文件包含和路径遍历会有危险?
  • 可以采用的政策和技术来发现和解决这个问题。

攻击者如何利用本地文件包含和路径遍历?

经典的电视侦探科伦坡(Columbo)过去总是在提供一个有价值的信息之前说:"还有一件事",这个信息将破解手头的案件。这句话在当时看来无关紧要,而且几乎总是被嫌疑人忽略,但事实证明,它总是成为他们的败笔。本地文件包含和路径穿越漏洞就很像这样。

本地文件包含和路径穿越漏洞使用了大多数编程框架(如ASP、JSP和PHP脚本)中存在的动态文件包含机制。对于本地文件包含,攻击者将存在于本地服务器上的文件名滑入网络应用程序的某个区域,如标题或表单输入区。应用程序像正常一样处理主要输入,但也处理include(page)或类似命令。在路径遍历中,攻击者定义了一个可疑文件的路径,通常使用点、点和斜线(.../)字符作为变量。这非常像Columbo,因为黑客真的不关心参数的第一部分。这只是他们在最后添加 "只是多了一件事 "的一种手段。

在这两种情况下,攻击者通常必须进行大量的试验和错误。除非他们非常熟悉网站的结构,否则猜测路径配置和文件名可能需要很长的时间。也就是说,大多数网站都遵循特定的模式,并且有或多或少类似的目录和文件名。因此,它可能不会像你想象的那样花费很长时间。鉴于报酬可能非常丰厚,一旦发现本地文件包含和路径遍历漏洞,黑客就会有很大的动力去尝试利用。

为什么本地文件包含和路径遍历漏洞是危险的?

本地文件包含和路径遍历漏洞很危险,因为它们可以让攻击者获得对敏感或关键文件的访问。对于数据文件,危险在于黑客可以获得一些有价值的东西,如用户密码或其他个人信息。一个主要目标通常是密码或用户配置文件,因为这将提供对网站其他部分的访问。数据库也是主要目标。在最坏的情况下,本地文件包含和路径穿越漏洞可以让攻击者窃取数据库的全部内容。

对于可执行文件来说,危险在于获得对它们的访问权可能会使攻击者进行恶意活动,如破坏网站的一部分,甚至通过浪费系统资源来发动某种类型的内部拒绝服务攻击。但是,危险的全部范围只受限于攻击者的聪明才智和技能,以及他们能够访问目标服务器上已经存在的任何文件。

消除本地文件包含和路径遍历所带来的威胁

通过良好的网络安全实践,可以消除本地文件包含和路径遍历漏洞所带来的危险。要记住的最重要的事情是永远不要允许用户在 "文件包含 "或其他具有类似功能的命令中输入。如果一个应用程序必须允许它,不要直接传递它。相反,使用间接参考图。间接引用映射将用户的输入映射到一组硬编码的可信值,然后可以安全使用。

与其他许多漏洞一样,要特别注意所有用户控制的输入区域,如cookies、HTTP头和表单参数。允许的输入应该被列入白名单,而其他一切都被明确拒绝。在无法做到这一点的情况下,使用输入验证来严格规范允许的数值,如数字、字母数字值等。

关于本地文件包含和路径穿越的更多信息

要进一步阅读,你可以看一下OWASP关于本地文件包含和路径穿越漏洞的测试指南。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。