什么是目录遍历?

目录遍历是一种恶意技术,其目的是授予攻击者对受限文件和目录的访问权限,超越目标网站或 Web 应用程序的文档根目录之外。

Directory Traversal 1024x537

通过使用特殊字符(路径遍历序列)操作引用文件的变量,攻击者可以通过 Web 服务器解释这些序列,迫使服务器在文件系统层次结构中向上移动一个目录。这样,攻击者可以访问文档根目录之外的敏感信息,如操作系统信息和关键配置文件。

为了限制目录遍历攻击造成的潜在损害,Web 服务器利用了文档根的概念。文档根是将网站文件限制在指定目录中,称为网站的根目录。通过定义文档根目录,Web 服务器可以正确地引导和响应对该网站内容的传入请求。除了文档根之外,Web 服务器还使用其他访问控制机制来进一步限制对网站数据的访问。最值得注意的机制之一是文件权限,它有助于实施最小特权原则,确保系统用户或进程仅被授予执行其预期功能所需的最低访问级别。

然而,黑客可以使用多种恶意技术来绕过这些机制,其中包括目录遍历。在大多数情况下,攻击者精确地知道他们在寻找什么信息,并可以绕过禁用目录列表的限制。因此,Web 服务器必须采取其他措施来防止目录遍历攻击。例如,可以对输入进行彻底的检查和过滤,确保输入不包含非法的路径遍历序列。另外,应该定期更新服务器和 Web 应用程序以修复已知漏洞,并使用强大的密码和多因素身份验证保护用户凭据。

在 Linux 服务器上,/etc/passwd 文件是目录遍历攻击的常见目标之一。该文件包含在服务器上创建的用户列表,提供了对用户凭据进行暴力攻击的良好起点。因此,Web 服务器管理员必须确保此文件的访问权限适当受限,并监视可能的攻击行为。

总之,目录遍历是一种常见的 Web 安全威胁,可用于获取敏感信息或破坏系统的安全性。Web 服务器管理员必须了解该威胁,并采取必要的预防措施来确保其系统的安全性和完整性。