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