返回列表 回復 發帖

FTP伺服器關於許可權的安全防範問題

FTP伺服器關於許可權的安全防範問題
很多電影網站,論壇或其它機構為了方便會員或成員上傳電影或者交流檔,都允許用戶的上傳許可權,因為只有允許這個許可權,用戶才可以上傳檔,但這個許可權在允許中斷點再傳的ftp伺服器中,可以導致很大的問題出來。
  允許中斷點再傳的ftp伺服器程式,都必須支援一個“Rest”的命令,如果這個命令是用在上傳命令前(send命令), 是告訴ftp伺服器我要上傳的檔會是從ftp伺服器中存在的那個檔的什麼位置中開始寫。  
  例子:  
  假設ftp伺服器中存在一個檔Readme.txt,檔大小為1000 bytes,連接上這個ftp伺服器(假設我有寫許可權,ftp伺服器是支援中斷點再傳的),我本地中也有一個叫Readme.txt的文件,文件大小為500 bytes。好了,我開始做壞事。  
  1、連接上這個ftp伺服器(用系統自帶的 ftp://ftp.exe/,在內網的可能無法使用,因為 ftp://ftp.exe/用的是port模式)  
  2、dir(查看Readme.txt大小,確定了是1000 bytes)  
  3、quote rest 1000(告訴ftp伺服器我將要傳送的檔是從檔位置1000開始)  
  4、send Readme.txt  
  5、dir(再次查看Readme.txt大小,現在Readme。txt變成1500 bytes了)  
  為什麼Readme.txt會變大了?很簡單,因為我本地的那個Readme.txt的500位元組上傳成功,並寫入到ftp伺服器中存在的那個1000 bytes的Readme.txt文件中了。問題是出在第二條命令,如果沒有第二條命令,我的第4個命令(Send Readme.txt),就會得到一個Permission Deny的錯誤,第二條命令是讓ftp伺服器信任我們將要進行一個中斷點再傳的操作,如果沒有第二條命令,ftp伺服器將以為我們進行的是一個覆蓋原文件的操作(覆蓋原文件操作需要另外的許可權才可以進行)。  
  說到這裡,大家應該明白了主題的意思了吧,通過很簡單的操作,任何具有寫許可權的用戶,都可以改動其它用戶上傳的檔,單是這一點,就存在很大的安全性漏洞了。如果上傳的是重要檔,隨意的修改可以令檔完全破壞了;如果是可執行檔或一些zip或rar檔,會不會有些熟悉各種檔結構的天才瘋子,將一些惡意程式碼也加到那些檔,令執行者系統受到破壞或者執行了他們的後門代碼或其它,由於本身對於這些檔結構並不熟悉,我只說這是一個未知之數。  
  但在電腦的世界中,很多不可能的事最後都被創造成可能,所以我無法下定論。但單是能破壞到檔這一點,已是很具破壞性了,想想一個500M的影視檔,被人多加了位元組進去的話,估計是無法再被觀看的了,播放這些檔的程式一般都會說不是合法的影視檔,無法播放等等。至於zip,rar等檔,winzip或winrar肯定會說壓縮檔已遭到破壞,crc檢驗碼不對等等的錯誤。 (程式設計入門網--www.bianceng.cn)
  這個問題只是在允許中斷點再傳的FTP服務中存在,但現在90%的FTP服務程式都是允許中斷點再傳的,所以這問題在普遍的FTP伺服器都會存在。  
  防範方法:  
  如果一定需要給使用者上傳許可權的話,最好的防範方法是每個用戶都給他建立一個目錄,將那個使用者的許可權完全鎖在這個目錄內,那麼使用者就沒有許可權可以查看其它使用者的目錄,也就是說無法造成以上所說的破壞。  
  以上所說的在Serv-U V4.0中測試過,測試平臺是Win 2K Server。如果其它ftp服務程式不存在這種問題,那不在此文章討論範圍內。 現在windows系統中架設ftp伺服器,用得最多最流行的還是Serv-U,所以管理員們要多留心了。這文章並不是要教人做壞事,如果你用這種方法去破壞ftp伺服器的檔,唯一要負責任的人是你。引用一句古龍小說中的話:“刀本身並沒有錯,錯的是拿它的手”。
返回列表