![]() |
|
||
| | 首页 | 下载中心 | 高手学院 | 视频教程 | 书籍教程 | 模板中心 | 空间评测 | 每日代理 | 站长服务 | 高手论坛 | | |||
![]() |
|||
|
||||||
| Windows文件系统漏洞! 作者:佚名 文章来源:不详 点击数: 更新时间:2005-1-30 | ||||||
![]() ![]() |
||||||
如果文件名中有“\”符号会怎么样呢?假如“S\”是一个文件夹的名字,这个文件夹位于:“F:\”,他的路径就是“F:\S\”,当我们试图访问的时候Windows会错误的认为我们要打开的文件是C分区的S文件夹,这样Windows就无法打开并且会返回一个错误,因为以上的路径并不存在。 也许你现在正在尝试创建“S\”文件,但是Windows会提示你:“\”符号是不能作为文件、文件夹的名字的。看来Windows还是早已想到这一点了的。OK我们继续进行,就不信不能建立包含“\”符号的文件。 现在打开你的电脑,我们要做一些很有趣的尝试。进入Windows后 点击:开始>运行 然后输入“cmd”并会车(如果是Win98请输入“COMMAND”),这时你会看到Windows的命令控制台,我们就是要利用它完成我们剩下的测试,以下包含了很多命令其中{}中的字符是我的注释: F:\Test>mkdir s\ {我们的第一次尝试,结果Windows只创建了S文件夹"\"被忽略掉了} F:\Test>mkdir s\s1\ {还是失败,Windows先创建了S文件夹,然后在S内创建s1文件夹} F:\Test>mkdir s.\ {"s.\"被解析成S".\"又被忽略了} F:\Test>mkdir s..\ {终于成功了,现在你可以在资源管理器看到"s."但却无法打开/删除} F:\Test>mkdir s...\ {又成功了,在资源浏览器能看到"s.."可以打开但是无法删除} ---------------------------------------------- 为什么会这样?我们先说你看到的这个“S.”文件夹,他即不能打开也不能删除,不能打开是因为他的实际路径是“F:\Test\s..\”(我们自己创建的所以可以确定他的实际路径)但是在Windows资源管理器中名字变成了“S.”也就是说当你试图打开它的时候Windows实际上尝试打开“F:\Test\s.\”当然是不能打开的,文件并不存在,所以Windows会报错。不能删除也是因为这个,Windows把一个实际存在的文件路径错误的解析为一个不存在的路径,并进行操作当然是无法完成的。 该说“S..”这个文件了,这个文件可以打开,但是却无法删除。等等……打开?你以为Windows真的是打开了我们创建的“s...\”文件了吗?我们做下面的试验你就明白了。还是老规矩{}是我的注释方便大家理解: F:\Test>echo 1 > Txt1.txt {创建“F:\Test\Txt1.txt”文件} F:\Test>copy Txt1.txt s..\ {复制刚刚创建的文件到“s..\”,就是资源管理器的“S.”} F:\Test>echo 2 > Txt2.txt {创建“F:\Test\Txt2.txt”文件} F:\Test>copy Txt2.txt s..\ {复制刚刚创建的文件到“s...\”,资源管理器的“S..”} F:\Test> ---------------------------------------------- 现在回到你的资源管理器打开“S..”文件夹,你看到了什么?“Txt1.txt”文件怎么会在这里?我们刚刚的确复制到了“S.”呀?难道我们打开“S..”文件夹实际上就是打开了“S.”?不错事实就是这样。其实如果你再创建一个“S”文件夹的话“S.”就能打开了,但是实际上打开的是“S”。 “我该怎么删除它呢?”,删除它也不算很难,但是常规的方法是绝对删不掉的。有两种方法可供选择:1;进入DOS删除(不推荐)。2;还是进入命令提示符然后输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。删除实例: F:\Test>dir F:\Test 的目录 2003-09-11 17:50 <DIR> . F:\Test>rmdir s..\ F:\Test>rmdir s..\ /s F:\Test>rmdir s...\ /s
1;在Windows中创建“X..\”文件夹后该文件夹将无法通过常规方法删除,但是却可以Copy文件进去,在资源管理器显示为“X.”,错误的指向“X”文件夹。(嘿嘿,怎么有点像快捷方式?) 2;创建“X..\”的方法是在命令行输入“mkdir X..\”。 3;删除它的方法是在命令行输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。 3;暂无防范方法。
|
| |
| 文章录入:admin 责任编辑:admin 【发表评论】【告诉好友】【打印此文】【关闭窗口】 | |
|
| | 设为首页 | 加入收藏 | 联系我们 | 合作伙伴 | 友情链接 | 广告投放 | 关于我们 | | ||
![]() |
|
|