FTP服務(wù)器關(guān)于權(quán)限的問(wèn)題
很多電影網(wǎng)站,論壇或其它機(jī)構(gòu)為了方便會(huì)員或成員上傳電影或者交流文件,都允許用戶的上傳權(quán)限,因?yàn)橹挥性试S這個(gè)權(quán)限,用戶才可以上傳文件,但這個(gè)權(quán)限在允許斷點(diǎn)再傳的ftp服務(wù)器中,可以導(dǎo)致很大的問(wèn)題出來(lái)。
允許斷點(diǎn)再傳的ftp服務(wù)器程序,都必須支持一個(gè)“Rest”的命令,如果這個(gè)命令是用在上傳命令前(send命令), 是告訴ftp服務(wù)器我要上傳的文件會(huì)是從ftp服務(wù)器中存在的那個(gè)文件的什么位置中開(kāi)始寫(xiě)。
假設(shè)ftp服務(wù)器中存在一個(gè)文件Readme.txt,文件大小為1000 bytes,連接上這個(gè)ftp服務(wù)器(假設(shè)我有寫(xiě)權(quán)限,ftp服務(wù)器是支持?jǐn)帱c(diǎn)再傳的),我本地中也有一個(gè)叫Readme.txt的文件,文件大小為 500 bytes。好了,我開(kāi)始做壞事。
1、連接上這個(gè)ftp服務(wù)器(用系統(tǒng)自帶的 ftp://ftp.exe/,在內(nèi)網(wǎng)的可能無(wú)法使用,因?yàn)?ftp://ftp.exe/用的是port模式)
2、dir(查看Readme.txt大小,確定了是1000 bytes)
3、quote rest 1000(告訴ftp服務(wù)器我將要傳送的文件是從文件位置1000開(kāi)始)
4、send Readme.txt
5、dir(再次查看Readme.txt大小,現(xiàn)在Readme。txt變成1500 bytes了)
為什么Readme.txt會(huì)變大了?很簡(jiǎn)單,因?yàn)槲冶镜氐哪莻€(gè)Readme.txt的500字節(jié)上傳成功,并寫(xiě)入到ftp服務(wù)器中存在的那個(gè) 1000 bytes的Readme.txt文件中了。問(wèn)題是出在第二條命令,如果沒(méi)有第二條命令,我的第4個(gè)命令(Send Readme.txt),就會(huì)得到一個(gè)Permission Deny的錯(cuò)誤,第二條命令是讓ftp服務(wù)器信任我們將要進(jìn)行一個(gè)斷點(diǎn)再傳的操作,如果沒(méi)有第二條命令,ftp服務(wù)器將以為我們進(jìn)行的是一個(gè)復(fù)蓋原文件的操作(復(fù)蓋原文件操作需要另外的權(quán)限才可以進(jìn)行)。
說(shuō)到這里,大家應(yīng)該明白了主題的意思了吧,通過(guò)很簡(jiǎn)單的操作,任何具有寫(xiě)權(quán)限的用戶,都可以改動(dòng)其它用戶上傳的文件,單是這一點(diǎn),就存在很大的安全漏洞了。如果上傳的是重要文件,隨意的修改可以令文件完全破壞了;如果是可執(zhí)行文件或一些zip或rar文件,會(huì)不會(huì)有些熟悉各種文件結(jié)構(gòu)的天才瘋子,將一些惡意代碼也加到那些文件,令執(zhí)行者系統(tǒng)受到破壞或者執(zhí)行了他們的后門(mén)代碼或其它,由于本身對(duì)于這些文件結(jié)構(gòu)并不熟悉,我只說(shuō)這是一個(gè)未知之?dāng)?shù)。
但在電腦的世界中,很多不可能的事最后都被創(chuàng)造成可能,所以我無(wú)法下定論。但單是能破壞到文件這一點(diǎn),已是很具破壞性了,想想一個(gè)500M的影視文件,被人多加了字節(jié)進(jìn)去的話,估計(jì)是無(wú)法再被觀看的了,播放這些文件的程序一般都會(huì)說(shuō)不是合法的影視文件,無(wú)法播放等等。至于zip,rar等文件,winzip或winrar肯定會(huì)說(shuō)壓縮文件已遭到破壞,crc檢驗(yàn)碼不對(duì)等等的錯(cuò)誤。
這個(gè)問(wèn)題只是在允許斷點(diǎn)再傳的FTP服務(wù)中存在,但現(xiàn)在90%的FTP服務(wù)程序都是允許斷點(diǎn)再傳的,所以這問(wèn)題在普遍的FTP服務(wù)器都會(huì)存在。
如果一定需要給用戶上傳權(quán)限的話,最好的防范方法是每個(gè)用戶都給他建立一個(gè)目錄,將那個(gè)用戶的權(quán)限完全鎖在這個(gè)目錄內(nèi),那么用戶就沒(méi)有權(quán)限可以查看其它用戶的目錄,也就是說(shuō)無(wú)法造成以上所說(shuō)的破壞。
以上所說(shuō)的在Serv-U V4.0中測(cè)試過(guò),測(cè)試平臺(tái)是Win 2K Server。如果其它ftp服務(wù)程序不存在這種問(wèn)題,那不在此文章討論范圍內(nèi)?,F(xiàn)在系統(tǒng)中架設(shè)ftp服務(wù)器,用得最多最流行的還是Serv-U,所以管理員們要多留心了。這文章并不是要教人做壞事,如果你用這種方法去破壞ftp服務(wù)器的文件,唯一要負(fù)責(zé)任的人是你。引用一句古龍小說(shuō)中的話:“刀本身并沒(méi)有錯(cuò),錯(cuò)的是拿它的手”。
關(guān)鍵詞:FTP服務(wù)器
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 0
- 0
- 0
- 0
- 0
- 0