目录遍历是一种恶意技术,很少被用作获取受害者服务器上敏感信息的唯一手段。攻击者首先需要找到目标网站的漏洞,并利用该漏洞使浏览器显示所请求的信息。只有在这种情况下,目录遍历才能用于浏览受害者服务器上的文件系统,以访问受限目录。
目录遍历漏洞通常与文件包含漏洞相结合使用。当网站未正确清理用户输入时,比如使用动态文件包含提供的文件路径时,就可能出现目录遍历漏洞。通过本地文件包含 (LFI) 和目录遍历漏洞的结合,黑客可以访问目标网站文档根目录之外的数据,从而泄露敏感的服务器信息。
下面举一个例子来更好地理解如何利用本地文件包含和目录遍历漏洞。假设有一个名为 content.php 的网页,用于根据用户的请求动态加载不同的页面或组件。例如,如果网站访问者想要查看“联系我们”页面,他们的请求可能会显示在浏览器地址栏中。
content.php 页面使用本地文件包含技术引用与“contact_us”参数对应的文件,该参数可能包含请求的“联系我们”页面的 PHP 和 HTML 代码。在这个例子中,content.php 充当控制器,根据用户输入加载适当的文件来动态生成内容。
然而,如果用户的输入没有得到正确验证或清理,攻击者可能会利用文件包含和目录遍历漏洞来包含任意文件,并将这些文件显示在浏览器中。
举个例子,黑客可以将“../../../../../var/log/apache2/access.log”作为页面查询参数的值传递。这是一个目录遍历序列,后面跟着 Apache Web 服务器在文件系统中存储主要访问日志的路径。通过这种方式,攻击者可以查看日志文件的内容,其中包含敏感信息,如 IP 地址、用户代理字符串和网站访问者请求的 URL。
由此可见,WordPress建站过程中,我们也要注意WordPress目录遍历的问题。