一、漏洞原理
? ? ? ? ?CVE-2021-1879 是 IBM WebSphere Application Server 中存在的一個 路徑遍歷(Path Traversal) 漏洞,其核心原理為:
? ? ? ?①WebSphere 在處理某些文件操作請求(如下載、上傳或配置文件讀取)時,未對用戶輸入的文件路徑進行充分過濾或規范化處理。
? ? ? ?②攻擊者可通過構造包含特殊字符(如
../
、..\
)的路徑,繞過應用對文件目錄的限制,訪問服務器操作系統中任意目錄的文件(包括系統文件、應用配置文件等敏感數據)。? ? ? ?③漏洞源于文件路徑解析邏輯的缺陷,未正確校驗用戶輸入是否符合預期的目錄范圍。
二、利用方式
- 攻擊場景:
- 攻擊者通過Web界面(如HTTP請求)發送包含路徑遍歷字符的請求,誘導WebSphere處理惡意路徑。
- 例如,訪問以下URL可嘗試讀取系統文件:
若應用未過濾http://websphere-host/app/download?file=../../../../etc/passwd
../
,則可能返回Linux系統的/etc/passwd
文件內容。- 利用鏈:
- 攻擊者首先探測WebSphere的文件服務接口(如文件下載功能),識別可接受用戶輸入路徑的參數。
- 構造包含路徑遍歷字符的請求,嘗試訪問敏感文件(如應用配置文件
server.xml
、數據庫憑證文件或系統文件)。- 若成功,可進一步利用獲取的信息(如數據庫密碼、內部IP)發起后續攻擊(如數據庫注入、內網滲透)。
- 影響范圍:主要影響未修復的IBM WebSphere Application Server 9.0.x、8.5.x等版本,具體范圍需參考IBM官方安全公告。
三、防御措施
- 系統更新:
- IBM已通過安全補丁修復該漏洞(如WebSphere 9.0.5.13、8.5.5.22及以上版本),用戶需立即升級至受支持的版本。
- 定期檢查IBM官方安全公告(如IBM Security Bulletins),確保應用最新補丁。
- 輸入驗證與過濾:
- 白名單機制:僅允許用戶輸入預定義的合法字符(如字母、數字、下劃線),禁止包含
../
、\
、%00
(空字節)等路徑遍歷字符。- 路徑規范化:將用戶輸入的路徑轉換為絕對路徑,并檢查是否在應用預期的目錄內(如
WEB-INF/files
)。- 示例代碼:
String userInput = request.getParameter("file"); File file = new File(baseDir, userInput); if (!file.getCanonicalPath().startsWith(baseDir.getCanonicalPath())) {throw new SecurityException("非法路徑"); }
- 文件系統權限控制:
- 限制WebSphere應用運行賬戶的權限,確保其僅能訪問必要的目錄(如應用工作目錄)。
- 禁止應用賬戶對系統關鍵目錄(如
/etc
、/bin
)的讀取或寫入權限。- 網絡層防護:
- 部署Web應用防火墻(WAF),配置規則攔截包含路徑遍歷特征的請求(如連續多個
../
、\
字符)。- 啟用WebSphere內置的安全功能(如“輸入驗證過濾”),參考IBM文檔配置安全策略。
- 監控與審計:
- 開啟WebSphere的訪問日志,定期分析異常文件訪問請求(如高頻次、非常規路徑的請求)。
- 部署入侵檢測系統(IDS),檢測針對文件服務接口的探測行為(如多次嘗試訪問
../../../../
開頭的路徑)。
總結
? ? ? ?CVE-2021-1879 是典型的路徑遍歷漏洞,攻擊者可利用其讀取服務器敏感文件,進一步滲透內網。防御核心是 輸入驗證、路徑規范化、最小權限原則 及 及時更新補丁。企業需結合代碼層過濾、系統權限控制及網絡層防護,構建多層次防御體系。
?結語?
莫愁千里路
自有到來風
!!!