什么是目录遍历

目录遍历(也称为文件路径遍历)是一种网络安全漏洞,允许攻击者读取运行应用程序的服务器上的任意文件。这可能包括应用程序代码和数据、后端系统的凭据以及敏感的操作系统文件。在某些情况下,攻击者可能能够写入服务器上的任意文件,允许他们修改应用程序数据或行为,并最终完全控制服务器
通过目录遍历读取任意文件考虑一个显示待售商品图像的购物应用程序。图像通过一些 HTML 加载,如下所示:
攻击者可以请求以下 URL 从服务器的文件系统中检索任意文件

绕过防御

  • 可以使用来自文件系统根目录的绝对路径

    %2e%2e%2f或%252e%252e%252f..%c0%af或..%ef%bc%8f

    filename=/var/www/images/../../../etc/passwd
  • 如果应用程序要求用户提供的文件名必须以预期的文件扩展名结尾,例如.png
    %00