论坛: 黑客进阶 标题: 一个关于windows目录的漏洞 复制本贴地址    
作者: bridex [bridex]    论坛用户   登录
大家都知道在Windows中“\”符号是路径的分隔符号,比如“C:\Windows\”的意思就是C分区中的Windows文件夹,“C:\Windows\System.exe”的意思就是C分区中的Windows文件夹中的System.exe文件,好继续我们假设一下:

如果文件名中有“\”符号会怎么样呢?假如“S\”是一个文件夹的名字,这个文件夹位于:“F:\”

,他的路径就是“F:\S\”,当我们试图访问的时候Windows会错误的认为我们要打开的文件是C分区的S文件夹,这样Windows就无法打开并且会返回一个错误,因为以上的路径并不存在。

也许你现在正在尝试创建“S\”文件,但是Windows会提示你:“\”符号是不能作为文件、文件夹的名字的。看来Windows还是早已想到这一点了的。OK我们继续进行,就不信不能建立包含“\”符号的文件。

现在打开你的电脑,我们要做一些很有趣的尝试。进入Windows后 点击:开始>运行 然后输入“cmd”并会车(如果是Win98请输入“COMMAND”),这时你会看到Windows的命令控制台,我们就是要利用它完成我们剩下的测试,以下包含了很多命令其中{}中的字符是我的注释:
----------------------------------------------
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

F:\Test>mkdir s\ {我们的第一次尝试,结果Windows只创建了S文件夹"\"被忽略掉了}

F:\Test>mkdir s\s1\ {还是失败,Windows先创建了S文件夹,然后在S内创建s1文件夹}

F:\Test>mkdir s.\ {"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...\”文件了吗?我们做下面的试验你就明白了。还是老规矩{}是我的注释方便大家理解:
----------------------------------------------
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

F:\Test>echo 1 > Txt1.txt {创建“F:\Test\Txt1.txt”文件}

F:\Test>copy Txt1.txt s..\ {复制刚刚创建的文件到“s..\”,就是资源管理器的“S.”}
已复制 1 个文件。

F:\Test>echo 2 > Txt2.txt {创建“F:\Test\Txt2.txt”文件}

F:\Test>copy Txt2.txt s..\ {复制刚刚创建的文件到“s...\”,资源管理器的“S..”}
已复制 1 个文件。

F:\Test>

----------------------------------------------

现在回到你的资源管理器打开“S..”文件夹,你看到了什么?“Txt1.txt”文件怎么会在这里?我们刚刚的确复制到了“S.”呀?难道我们打开“S..”文件夹实际上就是打开了“S.”?不错事实就是这样。其实如果你再创建一个“S”文件夹的话“S.”就能打开了,但是实际上打开的是“S”。

“我该怎么删除它呢?”,删除它也不算很难,但是常规的方法是绝对删不掉的。有两种方法可供选择:1;进入DOS删除(不推荐)。2;还是进入命令提示符然后输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。删除实例:
----------------------------------------------
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

F:\Test>dir
驱动器 F 中的卷是 BGTING
卷的序列号是 2C8E-FE1C

F:\Test 的目录

2003-09-11 17:50 <DIR> .
2003-09-11 17:50 <DIR> ..
2003-09-11 18:35 <DIR> s.
2003-09-11 18:37 <DIR> s..
1 个文件 9 字节
5 个目录 3,390,029,824 可用字节

F:\Test>rmdir s..\
目录不是空的。

F:\Test>rmdir s..\ /s
s..\, 是否确认(Y/N)? y

F:\Test>rmdir s...\ /s
s...\, 是否确认(Y/N)? y
----------------------------------------------


利用这个漏洞我们可以做很多事情,比如想访问“S”文件夹,但是没有权限的时候我们可以创建“S..\”来指向“S”这样就可以跨权限浏览。而且新一代的木马程序很可能利用此漏洞把自身藏在某个“X..\”目录下这样用户根本不可能发现他,就算专业级的杀毒软件也只会去杀“X”而跳过“X..\”。如果恶意程序在机的计算机上创建很多“..\”文件夹的话,哈哈~那个时候Fotmat也许是最好的选择了。

现在微软官方好像还没有发布任何防范措施。

怎么样是不是有点晕了?不要怕“晕”是很正常的,我已经晕了很多次了。 :)

=====好了,说了这么多可能有点乱了。下面我总结一下:=======

1;在Windows中创建“X..\”文件夹后该文件夹将无法通过常规方法删除,但是却可以Copy文件进去,在资源管理器显示为“X.”,错误的指向“X”文件夹。(嘿嘿,怎么有点像快捷方式?)

2;创建“X..\”的方法是在命令行输入“mkdir X..\”。

3;删除它的方法是在命令行输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。

3;暂无防范方法。
_________________
2003.09.19
Prettysky(浪际天涯)

Csoft 编辑于 2003-11-07 20:44

--------------------------------------
一个网友的题外话:其实这个bug只是目录表和api对应的bug
所以用windows api 还是有办法进入目录的
比如 找FindFileData.cAlternateFileName
就可以正常访问,a..\ 用ae216~1 ...\ 用e2e2~1
所以其实有这个bug 如果微软不补之前,我们遍历目录的函数看来需要加些代码 要check cAlternateFileName 这个字段

所以还是可以有办法查出这些隐藏的目录和文件的,不知道目前杀毒软件做到了没有

-----------------------------------------
我的一个问题:
建立a..\后,在里面拷贝一个1.exe,然后运行
f:\ae216~1\1.exe,确实能运行。但我不知道a..\为何对应ae216~1,其他目录又如何对应,请知道的网友告知。





文章来源 http://bbs.netxeyes.org/cgi-bin/bbs3000/bbs.cgi?menu=show&slttitle=20031112154607&id=tech

地主 发表时间: 04-02-25 15:45

回复: ghame [ghame]   论坛用户   登录
好文章,顶一下。

B1层 发表时间: 04-02-27 20:36

回复: wocai [wocai]   论坛用户   登录
好文章,支持!

B2层 发表时间: 04-02-27 23:13

回复: zhl8082061 [zhl8082061]      登录
不错,顶一下

B3层 发表时间: 04-02-28 19:02

回复: newmyth21 [newmyth21]   论坛用户   登录
这算漏洞

B4层 发表时间: 04-02-28 20:16

回复: rock_2004 [rock_2004]   论坛用户   登录
回去试试,,,,只要是缺陷就算是漏洞啊!!!很好啊,,,!

B5层 发表时间: 04-03-05 09:41

回复: afan271314 [afan271314]   论坛用户   登录
好什么啊  关键的一点没有

B6层 发表时间: 04-03-05 14:59

回复: wangsong [wangsong]   论坛用户   登录


B7层 发表时间: 04-03-16 10:38

回复: aaron3826 [aaron3826]   论坛用户   登录
好东西。 挺详细的,精神不错。也顶一下。

B8层 发表时间: 04-03-31 18:53

回复: lhh2003 [lhh2003]   论坛用户   登录


B9层 发表时间: 04-03-31 21:59

回复: kailangq [kailangq]   版主   登录
值得夸奖

B10层 发表时间: 04-04-02 01:05

回复: v3200 [v3200]   论坛用户   登录
好像不太对

B11层 发表时间: 04-04-02 02:49

回复: kailangq [kailangq]   版主   登录


B12层 发表时间: 04-04-02 02:54

论坛: 黑客进阶

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

粤ICP备05087286号