什麼是目錄遍歷?

已發表: 2023-05-09

通過誘使 Web 服務器暴露原本受限的信息,攻擊者可以獲得一個強大的工具來破壞系統並造成重大破壞。 目錄遍歷是實現此目的的常用方法。 嘗試在為特定網站保留的文件系統區域之外導航可能會導致數據竊取和任意代碼執行。

通常,Web 服務器通過將網站文件限制在其根目錄(也稱為文檔根文件夾)內來限制對文件系統的訪問。 但是,網絡罪犯可以繞過這些安全控制並利用不安全的文件權限。 這樣,他們就可以在未經授權的情況下訪問存儲在受害者服務器上其他地方的關鍵信息。

經常在插件和主題中發現的文件包含漏洞使 WordPress 網站成為涉及目錄遍歷的攻擊的高優先級目標。 雖然實施安全編碼實踐是插件和主題開發人員的任務,但實施良好的安全實踐是網站所有者的責任。

在本目錄遍歷指南中,我們將探索黑客突破網站根目錄訪問受限數據的常用方法。 您將了解路徑遍歷如何使攻擊者能夠成功利用本地文件包含 (LFI) 漏洞造成損害,以及如何通過實施穩健的安全實踐來保護您的 WordPress 網站免受這些類型的攻擊。

首先,讓我們仔細看看安全服務器操作的概念。 更具體地說,不同類型的數據在服務器環境中是如何分離的,以及網站數據在這個生態系統中的位置。

目錄遍歷

數據分區如何幫助保護服務器操作

網站和 Web 應用程序依靠服務器來存儲數據。 這些數據隨後由 Web 和數據庫服務器以及其他特定應用程序處理,然後作為請求的網頁通過 Internet 傳送到訪問者的瀏覽器。 底層硬件和軟件組件協同工作以創建支持此功能的強大基礎架構。

但是,這種客戶端-服務器架構還需要一種謹慎的服務器安全方法。 服務器操作系統的關鍵服務和其他組件必須與用戶文件和網站數據完全分離。 文件系統上的這種數據分離通常稱為數據分區。

數據分區通過將不同類型的數據隔離到單獨的分區中,有助於保護服務器操作中最脆弱的方面。 文件系統分區和其他安全機制的實施有助於保護服務器免受未經授權的敏感信息訪問和系統級危害。 此外,數據分區通過將經常修改的數據與主要只讀文件分開以及隔離系統和用戶數據來實現高效的資源管理並提高服務器性能。

Web 服務器訪問控制:使用文檔根限製網站數據

為了將網站數據與系統數據隔離開來,Web 服務器利用了文檔根的概念。 這涉及將網站文件限制在文件系統上的指定目錄中,稱為網站的根目錄。 通過定義文檔根目錄,Web 服務器可以正確地引導和響應對該網站內容的傳入請求。 此根目錄是處理該網站的 Web 請求的起點。

這種限制有助於防止未經授權訪問存儲在指定根目錄之外的關鍵服務器數據,例如操作系統信息和關鍵配置文件。 這意味著與特定網站相關的任何腳本或其他內容和功能只能訪問和修改根目錄及其子目錄中的數據,從而在發生安全漏洞時保護服務器的其餘部分。

除了文檔根之外,Web 服務器還使用其他訪問控制機制來進一步限制對網站數據的訪問。 最值得注意的機制之一是文件權限。 文件權限有助於實施最小特權原則,這意味著系統用戶或進程僅被授予執行其預期功能所需的最低訪問級別。

儘管這種方法具有強大的安全性,但黑客可以使用多種惡意技術來繞過它。 一種這樣的方法是目錄遍歷。 目錄遍歷攻擊利用網站代碼中的弱點和安全權限的實施來誘騙網絡服務器洩露瀏覽器無法訪問的受限信息。

什麼是目錄遍歷?

目錄遍歷,也稱為路徑遍歷,是一種惡意技術,旨在授予對目標網站或 Web 應用程序的文檔根目錄之外的受限文件和目錄的訪問權限。 路徑遍歷允許攻擊者通過瀏覽器通過服務器的文件系統一直導航到根目錄和其他受限文件夾——這種行為在正常情況下是不可能發生的。

目錄遍歷是通過使用特殊字符(稱為路徑遍歷序列)操縱引用文件的變量來執行的。 諸如點-點-斜杠“../”之類的序列被 Web 服務器解釋,迫使它在文件系統層次結構中向上移動一個目錄,遠離網站的文檔根目錄。

如果網站存儲在 /home/user/public_html 中,提供目錄遍歷序列 '../../../etc' 將允許攻擊者導航到 /etc 目錄,該目錄存儲 Linux 上的關鍵系統配置服務器。

如果在 Web 服務器配置中禁用了目錄列表,則網絡罪犯將無法查看所請求目錄的內容。 這可以部分提高系統的安全性並限制目錄遍歷攻擊造成的潛在損害,因為攻擊者必須指定他們想要在瀏覽器中顯示的確切文件。 但在大多數情況下,黑客確切地知道他們在尋找什麼信息,禁用目錄列表不會阻止他們訪問它。

/etc/passwd 文件是目錄遍歷攻擊的常見目標之一。 在 Linux 服務器上,/etc/passwd 文件包含在服務器上創建的用戶列表。 這可以為黑客提供對用戶憑據進行暴力攻擊的良好起點。 由於 /etc/passwd 的文件權限為 644,這意味著系統上的所有用戶都可以讀取它,包括運行 Web 服務器的用戶。 這樣,Web 服務器就可以通過瀏覽器呈現文件的內容。

目錄遍歷如何工作?

作為一種惡意技術,目錄遍歷很少被用作訪問受害者服務器上敏感信息的唯一手段。 首先,攻擊者需要想辦法利用目標網站的漏洞,想辦法讓它在瀏覽器中顯示請求的信息。 只有這樣,目錄遍歷才會用於瀏覽受害者服務器的文件系統以到達受限目錄。

文件包含漏洞使目錄遍歷成為可能。 當網站沒有正確清理用戶輸入時,例如使用動態文件包含提供的文件路徑,就會出現目錄遍歷漏洞。 本地文件包含 (LFI) 和目錄遍歷漏洞的組合允許黑客訪問目標網站文檔根目錄之外的數據,從而洩露敏感的服務器信息。

目錄遍歷的例子

為了更好地了解如何利用本地文件包含和目錄遍歷漏洞,讓我們看一下以下示例。 此示例是如何通過文件包含缺陷使用目錄遍歷的簡化表示。

Web 開發人員添加一個網頁 content.php,用於允許網站根據用戶的請求動態加載不同的頁面或組件。 例如,如果網站訪問者想要查看“聯繫我們”頁面,他們的請求可能會在瀏覽器地址欄中顯示為“https://website.com/content.php?page=contact_us”。

content.php 頁面將使用本地文件包含技術來引用與“contact_us”參數對應的文件,該參數可能包含請求的“聯繫我們”頁面的 PHP 和 HTML 代碼。 在此示例中,content.php 網頁充當控制器,它加載根據用戶輸入動態生成內容的適當文件。

但是,如果用戶的輸入未得到正確驗證或清理,攻擊者可能會利用文件包含和目錄遍歷漏洞來包含任意文件,然後這些文件將顯示在瀏覽器中。

例如,黑客可以將“../../../../../var/log/apache2/access.log”作為頁面查詢參數的值傳遞——一系列目錄遍歷序列後跟Apache Web 服務器在文件系統中的主要訪問日誌的地址。 這樣,攻擊者就可以查看日誌文件的內容,其中包含敏感信息,例如 IP 地址、用戶代理字符串和網站訪問者請求的 URL。

文件權限如何促進或減輕目錄遍歷

文件權限在確保服務器和網站安全方面發揮著巨大作用。 通過將對文件的訪問限制為僅特定的系統用戶和組,權限可以幫助促進或減少目錄遍歷。

在使用目錄遍歷的文件包含攻擊中,攻擊者請求的文件的內容只有在其文件權限允許使用 Web 服務器運行的系統讀取時才會顯示在瀏覽器中。 雖然一些受限制的文件(例如 /etc/password)具有 644 的權限,這使得所有系統用戶都可以讀取它們,但其他文件仍然只能由 root 用戶訪問。

/etc/shadow 文件包含 Linux 服務器上所有用戶的加密密碼,文件權限為 640,這使得除 root 以外的任何用戶都無法訪問它。 這使得黑客無法通過目錄遍歷通過瀏覽器訪問該文件。

如何檢測您的 WordPress 網站上的目錄遍歷漏洞?

WordPress 核心保持高級別的安全性,並完全免受文件包含漏洞和目錄遍歷的影響。 但是,該平台提供的高度自定義選項增加了 WordPress 網站上存在這些漏洞的可能性。 即使是最著名的 WordPress 插件和主題也可能包含經常被發現的安全漏洞。

iThemes 每週 WordPress 漏洞報告可幫助您快速識別和修補 WordPress 插件和主題中新披露的漏洞,包括目錄遍歷。 只需檢查漏洞報告,看看最近是否在您在 WordPress 網站上使用的插件以及您的活動主題中發現任何安全漏洞,並查看是否已發布補丁。

iThemes Security Pro 可以自動掃描您的 WordPress 網站是否存在漏洞,並代表您快速修補已識別的漏洞。 iThemes Security Pro 將每天進行兩次高級漏洞掃描,如果檢測到任何漏洞,將通過電子郵件發送給您,並在有可用的安全修復程序時自動安裝更新。

如何防禦目錄遍歷?

利用插件和主題中發現的漏洞是黑客用來獲取未經授權的訪問、竊取敏感數據以及將惡意軟件(包括後門 shell)上傳到 WordPress 網站的最大攻擊媒介之一。 雖然遵循安全編碼實踐屬於插件和主題開發人員的責任範圍,但 WordPress 網站所有者有責任在本地實施保護措施。 只有多方面的 WordPress 安全方法才能幫助降低成為現代複雜網絡攻擊受害者的風險。

保持所有軟件更新

將 WordPress 核心、活動插件和所選主題更新到可用的最新版本是消除目錄遍歷和其他嚴重的應用程序級漏洞的第一步。 由於在支持您的 WordPress 網站的軟件中發現了新的安全漏洞,因此在安全補丁可用後儘快安裝是最重要的。 在插件或主題開發人員解決發現的漏洞之前,可以禁用受影響的軟件以減少攻擊面。

跟踪插件和主題更新可能是一項具有挑戰性的任務,但通過 iThemes Security Pro,網站所有者可以獲得一個全面的解決方案,該解決方案可以簡化流程並幫助確保網站保持最新狀態並防止出現安全漏洞。 版本管理功能提供自動軟件更新以保護您的 WordPress 站點。

配置安全文件權限

安全的 WordPress 文件權限為旨在訪問敏感網站和服務器信息的攻擊提供了額外的防禦層。 儘管您很少需要更改關鍵系統配置文件和其他受限服務器數據的文件權限,但為網站文件設置安全權限的責任通常落在網站所有者身上。

保留重要的 WordPress 信息,例如 wp-config.php 文件,可以幫助有效防止通過利用目錄遍歷漏洞的文件包含攻擊符號鏈接的跨帳戶妥協。 iThemes Security Pro 中的文件權限檢查可幫助網站所有者確保在其 WordPress 網站上正確實施這一關鍵安全機制。

實施 Web 應用程序防火牆

防火牆的工作原理是在將匹配已知模式或表現出異常模式的惡意網絡請求傳遞到網絡服務器之前將其過濾掉。 作為抵禦大量機器人驅動的網絡攻擊(例如拒絕服務 (Dos) 和分佈式拒絕服務 (DDoS))以及跨站點腳本 (XSS) 和 SQL 等數據注入攻擊的強大第一道防線注入(SQLi)。

實施 Web 應用程序防火牆 (WAF) 或基於主機和基於雲的入侵防禦解決方案的組合可以顯著降低成功入侵嘗試的可能性。 作為針對文件包含和目錄遍歷漏洞的第二層防禦,Web 應用程序防火牆確保黑客可以利用未修補版本的插件和主題中發現的任何安全漏洞。

借助 IThemes Security Pro,暴力破解保護和內置機器人程序管理解決方案有助於阻止不良機器人程序並過濾掉到達您網站的惡意 Web 請求。 通過添加由帶有生物識別登錄的密碼支持的多因素身份驗證,這個全面的安全套件提供了一種多方面的方法來保護您的網站免受各種類型的安全威脅。

使用 iThemes Security Pro 保護您的 WordPress 網站

文件包含和目錄遍歷漏洞對網站安全構成重大威脅,因為它們經常被黑客利用,以期獲得對敏感數據的未授權訪問或在受害者的服務器上執行惡意代碼。 使用目錄遍歷序列並為易受攻擊的網站提供特定數據的路徑,攻擊者可以誘騙 Web 服務器暴露原本受限的服務器和網站信息。

儘管得到了廣泛的研究和認可,但目錄遍歷仍然是依賴過時軟件且缺乏適當安全措施的 WordPress 網站的主要問題。 及時執行 WordPress 核心、主題和插件更新,配置安全文件權限並實施 Web 應用程序防火牆可以顯著降低您的網站容易受到利用目錄遍歷的文件包含攻擊的風險。

iThemes Security Pro 可以通過提供全面、多方面的網站安全方法來幫助您保護 WordPress 網站免受大量網絡威脅。 憑藉高級漏洞掃描、自動軟件更新和強大的內置機器人管理解決方案,iThemes Security Pro 充當您的個人安全顧問,始終確保您的 WordPress 網站安全無虞。