论坛: 菜鸟乐园 标题: FTP断点续传危害 复制本贴地址    
作者: bridex [bridex]    论坛用户   登录
很多电影网站,论坛或其它机构为了方便会员或成员上传电影或者交流文件,都允许用户的上传权限,因为只有允许这个权限,用户才可以上传文件,但这个权限在允许断点再传的ftp服务器中,可以导致很大的问题出来.

允许断点再传的ftp服务器程序,都必须支持一个"Rest"的命令,如果这个命令是用在上传命令前(send命令), 是告诉ftp服务器我要上传的文件会是从ftp服务器中存在的那个文件的什么位置中开始写.

例子:
假设ftp服务器中存在一个文件Readme.txt,文件大小为1000 bytes,连接上这个ftp服务器(假设我有写权限,ftp服务器是支持断点再传的),我本地中也有一个叫Readme.txt的文件,文件大小为500 bytes.好了,我开始做坏事.
1.连接上这个ftp服务器(用系统自带的ftp.exe,在内网的可能无法使用,因为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检验码不对等等的!
错误.
这个问题只是在允许断点再传的FTP服务中存在,但现在90%的FTP服务程序都是允许断点再传的,所以这问题在普遍的FTP服务器都会存在.如果以上所说问题已被发现并在网上贴过出来,我这个有抄袭嫌疑的话,请原谅我的无知,因为我没有在网上看到过讲述这个问题的文章.

防范方法:
如果一定需要给用户上传权限的话,最好的防范方法是每个用户都给他建立一个目录,将那个用户的权限完全锁在这个目录内,那么用户就没有权限可以查看其它用户的目录,也就是说无法造成以上所说的破坏.这是我想到的最简单和方便的一种解决方法,如果有朋友想到更有效的方法的话,可以跟贴讨论一下.

以上所说的在serv-u V4.0中测试过,测试平台是win 2k server.如果其它ftp服务程序不存在这种问题,那不在此文章讨论范围内. 现在windows系统中架设ftp服务,用得最多最流行的还是serv-u,所以管理员们要多留心了.这文章并不是要教人做坏事,如果你用这种方法去破坏ftp服务器的文件,唯一要负责任的人是你.

_____
还有一种拒绝服务的方法.
cd/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
可以256个/A
呵呵.好玩.



地主 发表时间: 11/28 14:19

回复: redhouse [redhouse]   论坛用户   登录
我还是第一次听说

B1层 发表时间: 11/28 17:24

回复: etliwei [etliwei]   论坛用户   登录
有道理,顶一下
我只是想问一下,你实现命令的工具是什么?
我想试一下哦!

B2层 发表时间: 11/28 18:13

回复: bridex [bridex]   论坛用户   登录
在命令提示符下了.
有command(DOS)
有cmd(windows2000或NT/XP)
还有别的.

B3层 发表时间: 11/28 18:33

回复: pady [pady]   论坛用户   登录
试试

B4层 发表时间: 11/28 18:44

回复: bridex [bridex]   论坛用户   登录
别试,很危险,除非你有代理.

B5层 发表时间: 11/28 18:52

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号