網路安全中的目錄遍歷指什麼?

zktq2021發表於2022-09-07

在一個標準的web伺服器目錄中,根資料夾是當使用者在位址列上輸入一個網站的域名時可以訪問的公共訪問資料夾。根目錄包含站點的索引檔案以及到系統中使用的所有其他檔案和目錄的路徑。這些檔案只能被伺服器端程式碼或web應用程式本身訪問。

攻擊者可以讀取易受攻擊的應用程式中的這些檔案和目錄,以訪問密碼檔案、應用程式資料、原始碼和作業系統檔案等資訊。此類攻擊通常利用目錄遍歷漏洞,稱為目錄/路徑遍歷或目錄爬升攻擊。

什麼是路徑遍歷漏洞?

目錄遍歷漏洞,也稱為檔案路徑遍歷漏洞,允許攻擊者讀取Web應用伺服器上的任意檔案。這種暴露被認為是現代開發框架中最關鍵的應用程式安全風險之一,它允許未經授權訪問的威脅參與者透過更改請求中的檔案路徑名來利用受限檔案並在伺服器上執行錯誤程式碼。

任何無法驗證來自瀏覽器的資料輸入的伺服器軟體都容易受到目錄漏洞的影響。一旦可以訪問根目錄,駭客就依靠猜測或暴露的目錄樹來確定敏感伺服器檔案的名稱和位置。攻擊者還可以讀寫伺服器軟體使用的任意檔案,從而進行惡意操作,例如:

  • 訪問敏感檔案,例如憑據和原始碼檔案

  • 透過任意程式碼執行操作應用程式資料和功能

  • 冒充特權使用者(例如管理員)以獲得他們的訪問許可權

在沒有適當的輸入驗證的情況下,基於路徑遍歷漏洞的攻擊通常很容易策劃,因為它只需要 HTTP 請求和伺服器檔案處理的基本知識。

防止目錄遍歷攻擊的方法

訪問控制列表 (ACLs)和使用者輸入驗證構成了抵禦目錄遍歷攻擊的第一道防線。

靜態應用程式安全測試和動態應用程式安全測試技術有助於檢查應用程式程式碼中目錄列表中的漏洞。

此外,大多數程式語言和 Web 開發框架都包含有關保護關鍵系統檔案和環境強化的指南。

以下部分討論常見開發框架的目錄遍歷安全修復技術。

Java中的路徑遍歷漏洞修復

開發人員可以透過安全列出所有公眾可以訪問的可接受輸入和可能路徑來防止路徑遍歷。Java中安全列出路徑的典型程式碼如下:

Python中的路徑遍歷漏洞修復

在 Python 應用程式中防止路徑遍歷的安全機制包括:

  • 使用具有路徑遍歷預防機制的最新 Web 框架和軟體版本來幫助檢測替代字元表示

  • 使用os.path.repath函式將實際檔名和請求路徑更改為相對檔案路徑

C# 中的路徑遍歷漏洞修復

C# Web 應用程式的路徑遍歷漏洞修復包括:

  • 使用GetInvalidFileNameChars()路徑類方法識別指定請求引數中的無效字元

  • 使用間接物件引用來對映資源位置並避免向檔案系統 API 提供使用者輸入

  • 將絕對檔案路徑檢查與使用者提供的路徑名的清理和副檔名驗證相結合


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

相關文章