FTP客戶端攻擊
FTP客戶端攻擊
該漏洞影響了多個應用程序和庫,包括Java、npm等,因為它允許FTP服務器在本地文件系統中創建或覆寫任何文件。漏洞源于FTP客戶端在處理遠程文件夾內容時的不當驗證。通過結合多個FTP命令,如LIST或NLST用于列出遠程文件夾中的所有文件,以及GET或MGET用于下載文件,開發者可以編寫代碼實現文件下載功能。例如,使用Apache commons-net庫的Java代碼示例如下,該代碼遍歷服務器返回的文件名,下載到本地指定文件夾。
導讀該漏洞影響了多個應用程序和庫,包括Java、npm等,因為它允許FTP服務器在本地文件系統中創建或覆寫任何文件。漏洞源于FTP客戶端在處理遠程文件夾內容時的不當驗證。通過結合多個FTP命令,如LIST或NLST用于列出遠程文件夾中的所有文件,以及GET或MGET用于下載文件,開發者可以編寫代碼實現文件下載功能。例如,使用Apache commons-net庫的Java代碼示例如下,該代碼遍歷服務器返回的文件名,下載到本地指定文件夾。
![](https://img.51dongshi.com/20250108/wz/18372506252.jpg)
本文探討了FTP客戶端攻擊的潛在風險,尤其是涉及路徑遍歷漏洞的攻擊。FTP客戶端在與惡意服務器交互時,存在被鎖定的風險。漏洞的發現者已于2017年11月將此問題通報給受影響的供應商。該漏洞影響了多個應用程序和庫,包括Java、npm等,因為它允許FTP服務器在本地文件系統中創建或覆寫任何文件。漏洞源于FTP客戶端在處理遠程文件夾內容時的不當驗證。通過結合多個FTP命令,如LIST或NLST用于列出遠程文件夾中的所有文件,以及GET或MGET用于下載文件,開發者可以編寫代碼實現文件下載功能。例如,使用Apache commons-net庫的Java代碼示例如下,該代碼遍歷服務器返回的文件名,下載到本地指定文件夾。假設遠程文件夾中的第一個文件名為passwd,目標本地文件夾為/var/data/sync/,那么最終文件將被下載到/var/data/sync/passwd。如果FTP服務器是惡意的,返回的文件名可能包含路徑遍歷指令,如../../../../etc/passwd。在這種情況下,代碼最終會將文件下載到非法位置,覆蓋目標文件,如/etc/passwd。值得注意的是,文件名的有效性并非由文件系統決定,而是由客戶端和服務器驗證。許多FTP服務器不執行此驗證,導致開發者忽視了這一環節,從而給攻擊者留下了可乘之機。漏洞案例研究:Apache Hive是一個基于Apache Hadoop的數據倉庫軟件。Hive允許通過類似SQL的界面查詢各種數據庫和文件系統中的數據,并支持使用COPY-FROM-FTP命令從FTP服務器復制數據。在Hive中,文件名直接加在目錄后面下載,未經過驗證。一個可能的攻擊場景是覆蓋root用戶的ssh authorized_keys文件,從而以超級用戶身份登錄客戶端。通過修改FTP服務器的響應,使服務器發送惡意路徑遍歷文件名(如../../../../../../../home/root/.ssh/authorized_keys),當Hive以root身份執行這條語句時,root的authorized_keys ssh文件將被攻擊者已知的文件覆蓋。此漏洞已由Apache基金會披露,并在CVE數據庫中詳細描述。受影響的版本為Hive 2.1.0至2.3.2,該漏洞導致被入侵或惡意FTP服務器能夠導致文件被寫入集群中的任意位置。使用此版本的HPL / SQL的用戶應升級至2.3.3,或禁用HPL / SQL的使用??偨Y,FTP客戶端攻擊的潛在風險在于不當的路徑驗證和輸入處理。對于開發人員而言,關注用戶如何使用API固然重要,但同樣重要的是預見到攻擊者可能產生的意外輸入。在處理FTP服務器返回的目錄列表時,確保過濾以/或包含..開頭的文件名,以防止路徑遍歷攻擊。
FTP客戶端攻擊
該漏洞影響了多個應用程序和庫,包括Java、npm等,因為它允許FTP服務器在本地文件系統中創建或覆寫任何文件。漏洞源于FTP客戶端在處理遠程文件夾內容時的不當驗證。通過結合多個FTP命令,如LIST或NLST用于列出遠程文件夾中的所有文件,以及GET或MGET用于下載文件,開發者可以編寫代碼實現文件下載功能。例如,使用Apache commons-net庫的Java代碼示例如下,該代碼遍歷服務器返回的文件名,下載到本地指定文件夾。
為你推薦