路徑遊走

high Web App Scanning Plugin ID 98100

概要

路徑遊走

說明

Web 應用程式偶爾會使用參數值來儲存伺服器稍後需要用到的檔案位置。

在錯誤頁面中經常可看到這方面的例子,例如,錯誤頁面的實際檔案路徑儲存在 `example.com/error.php?page=404.php` 參數值中。

當參數值 (即伺服器呼叫的檔案路徑) 可以用位於應用程式工作目錄之外的其他資源的相對路徑取代時,會發生路徑遊走。接著,伺服器會載入該資源,並將其內容包含在對用戶端的回應中。

網路不法份子會濫用此弱點,檢視本應無法存取的檔案。

*nix 伺服器上的一個非常常見的例子是,取得 `/etc/passwd` 檔案的存取權,以擷取伺服器使用者清單。此攻擊將如下所示:`yoursite.com/error.php?page=../../../../etc/passwd`

由於路徑遊走是以相對路徑為基礎,因此承載必須先遊走至檔案系統的根目錄,也就是「../../../../」字串。

掃描程式發現可以將參數值取代為一般作業系統檔案的相對路徑,並將檔案內容包含在回應中。

解決方案

建議永遠不要使用未受信任的資料來形成要包含的檔案位置。
為驗證資料,應用程式應確保允許所提供的檔案值。為此,請將參數值與允許的檔案清單比對,對參數值執行加入白名單作業。如果提供的值不符合白名單中的任何值,則伺服器應重新導向至標準錯誤頁面。
在某些要求動態內容的情況下,可能無法針對受信任的資源清單執行驗證,因此清單也必須變成動態的 (隨著檔案變更而更新),或執行篩選以移除無關的使用者輸入 (例如分號、句號等),且僅允許「a-z0-9」。
另外,建議不要將敏感檔案儲存在 web root 中,並且目錄強制執行的使用者權限應正確無誤。

另請參閱

http://projects.webappsec.org/Path-Traversal

https://www.owasp.org/index.php/Path_Traversal

Plugin 詳細資訊

嚴重性: High

ID: 98100

類型: remote

已發布: 2017/3/31

已更新: 2023/8/9

掃描範本: api, full, pci, scan

風險資訊

VPR

風險因素: Medium

分數: 5.1

CVSS v2

風險因素: High

基本分數: 7.8

媒介: CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:N

CVSS 評分資料來源: Tenable

CVSS v3

風險因素: High

基本分數: 7.5

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

CVSS 評分資料來源: Tenable

參考資訊