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