安全寶對Serv-U FTP 7.3零日漏洞的分析
介紹
Serv-UFTPServer0day漏洞是一個Serv-U遠程目錄遍歷漏洞,2011-12-01公布。該漏洞最終可以導致遠程目錄遍歷漏洞,可以覆蓋、下載任意文件。
影響范圍:根據(jù)資料顯示有Serv-U5個版本受到影響,安全寶驗證了其中2個(v7.3和v6.4),其他受到影響的版本是v7.1、v8.2和v10.5。
模擬場景
軟件:Serv-UFTPServer7.3
FTP匿名帳戶的根目錄:C:\ftpuser
所要攻擊的目標目錄:C:\WINDOWS
原理說明
來看一下用anonymous登陸后,進行一個ls操作
此時一切正常,在ls操作中FTP目標目錄路徑由3個部分組成:
如果想ls一下windows目錄的話,常規(guī)操作方法是這樣ls../windows
由于該用戶的FTP根目錄是C:\ftpuser,自然訪問不了C:\windows,所以返回了一個550錯誤,此時在serv-u.dll中,路徑的解析過程是這樣的
可以看出來,Serv-U的目錄權限檢查非常簡單,就是判斷判斷一下目標路徑的首部是否是FTP用戶的HOME目錄,如果是,目錄權限檢查就算通過了。
那么現(xiàn)在來看一下該漏洞的攻擊方式
可以看到,如果使用..:/windows,就獲取到了目錄的訪問權限,那么僅僅多了一個":",為何就能攻擊成功呢?來看一下serv-u內(nèi)部對路徑的解析流程
可以很明顯看出,serv-u在刪除了路徑中的":"后,沒有再將C:\ftpuser\..\windows
進一步解釋成C:\windows,所以導致后面的那個簡單的目錄權限檢查很輕松地就通過了,最終導致了攻擊者獲取了FTP用戶HOME目錄以外的訪問權限。
漏洞的具體位置是在serv-u.dll中的CSUString::MakeFullPath中
目錄權限檢查的代碼
防護措施
安全寶建議,在Serv-U官方還沒有發(fā)布該漏洞補丁之前,管理員在本地以低權限運行Serv-U的服務,以及降低此漏風風險。
【編輯推薦】