什麼是目錄遍歷?

zktq2021發表於2023-12-22

目錄遍歷是一種HTTP漏洞,駭客利用Web伺服器上的軟體訪問伺服器根目錄以外的目錄中的資料。如果嘗試成功,威脅參與者可以檢視受限制的檔案或在伺服器上執行命令。

這種型別的攻擊通常使用web瀏覽器進行。任何無法驗證web瀏覽器輸入資料的伺服器都容易受到目錄遍歷攻擊。

目錄遍歷也被稱為目錄爬升、回溯和檔案路徑遍歷漏洞。目錄遍歷類似於結構化查詢語言注入和跨站點指令碼,因為都涉及程式碼注入。

以下技術有助於降低目錄遍歷風險:

Web 伺服器程式設計仔細;

安裝軟體更新和補丁;

過濾來自瀏覽器的輸入;

使用漏洞掃描程式。

目錄遍歷是如何工作的?

網路攻擊者透過猜測來找到Web伺服器上受限制檔案的路徑。但是,熟練的攻擊者可以搜尋目錄樹,並在保護不充分的伺服器上輕鬆執行這種攻擊。

執行目錄遍歷攻擊只需要少量資源,包括:

訪問網頁瀏覽器;

對在哪裡查詢目錄有一定的瞭解;

HTTP (Hypertext Transfer Protocol)請求的基本知識。

攻擊者可以使用目錄遍歷執行什麼操作?

一旦攻擊者訪問了根目錄,他們就可以進入計算機系統的其他部分。他們還可以讀寫伺服器上的任意檔案,使他們能夠操縱應用程式和相關資料,讀取密碼檔案等敏感資訊或控制伺服器。正常情況下,使用者無法訪問Web根資料夾以外的任何檔案。

攻擊者還可以獲得對訪問控制列表 (ACL) 的控制權,管理員使用這些列表向使用者授予各種級別的檔案訪問許可權。透過訪問 ACL,攻擊者可以冒充系統中的特權使用者來造成損害。

如何檢查目錄遍歷漏洞

以下是手動檢查目錄遍歷漏洞的兩種方法:

輸入向量列舉。列舉告訴測試人員Web應用程式的哪些部分可能容易受到繞過輸入驗證的嘗試攻擊。測試人員識別應用程式中接受使用者輸入的部分,包括POST和GET呼叫、檔案上傳和超文字標記語言表單。

常見模式。安全專業人員可以在應用程式的 URL 結構中查詢常見模式,以識別目錄遍歷漏洞。如果應用程式使用查詢字串引數指定檔案路徑,則攻擊者可能能夠操縱此引數來訪問預期路徑之外的檔案。搜尋引擎還可用於查詢可能包含檔名的 URL。

自動化工具還用於檢查遍歷漏洞。這些工具執行以下測試:

靜態應用程式安全測試。靜態測試是白盒測試,在應用程式未執行時檢查原始碼中的漏洞。

動態應用程式安全測試。動態測試工具在應用程式執行時檢查程式碼中的漏洞。透過使用黑盒測試的應用程式前端完成,無需訪問原始碼。在應用程式程式碼執行時執行安全檢查,就像正在使用程式一樣。另外模糊測試透過提交格式錯誤的資料來發現目錄遍歷漏洞。

如何防止目錄遍歷攻擊

防止這類路徑遍歷攻擊的有效方法是避免將使用者輸入傳遞到檔案系統應用程式程式設計介面(API)。瀏覽器過濾和使用者輸入不足會使web應用程式和web伺服器檔案容易受到遍歷攻擊。

如果無法避免將使用者輸入傳遞到檔案系統 API,則以下為有助於防止目錄遍歷的其他措施:

清理使用者輸入。清理使用者輸入確保只有應該提交的內容才會被髮送到伺服器。理想情況下,應該將經過驗證的輸入與允許輸入值的允許列表進行比較,例如允許的字串列表。

更新 Web 伺服器軟體。安裝所有更新和補丁,這樣攻擊者就無法利用已知的漏洞。

隔離文件。使用雲端儲存或將文件託管在單獨的檔案伺服器上,以便將包含敏感材料的目錄與公共資訊目錄分開。

使用索引。在url中使用索引比使用原始檔名更安全。索引在攻擊者和檔案之間增加了一層抽象,因為索引不能像原始檔名那樣讓攻擊者直接訪問檔案。


參讀連結:https://www.techtarget.com/searchsecurity/definition/directory-traversal


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70000012/viewspace-3001200/,如需轉載,請註明出處,否則將追究法律責任。

相關文章