找回密码
 立即加入
搜索

查看: 858|回复: 2

[分享]Windows文件系统漏洞-小漏洞,大用处

[复制链接]
Lindx 发表于 2005-5-12 22:36:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转闽南师范大学。

您需要 登录 才可以下载或查看,没有账号?立即加入

×
大家都知道在Windows中“\”符号是路径的分隔符号,比如“C:\Windows\”的意思就是C分区中的Windows文件夹,“C:\Windows\System.exe”的意思就是C分区中的Windows文件夹中的System.exe文件,好继续我们假设一下: : V5 }9 v3 o- ?! w$ G3 d* ]
如果文件名中有“\”符号会怎么样呢?假如“S\”是一个文件夹的名字,这个文件夹位于:“F:\”,他的路径就是“F:\S\”,当我们试图访问的时候Windows会错误的认为我们要打开的文件是C分区的S文件夹,这样Windows就无法打开并且会返回一个错误,因为以上的路径并不存在。
; y) \/ m. N! ^/ R8 e7 W1 [$ |  U9 q; o  ~1 \9 A7 X' ^5 ]9 _
    也许你现在正在尝试创建“S\”文件,但是Windows会提示你:“\”符号是不能作为文件、文件夹的名字的。看来Windows还是早已想到这一点了的。OK我们继续进行,就不信不能建立包含“\”符号的文件。
  Q" r6 \) h$ M# c2 i: @* @
* S! w% ~( B6 R! g6 b; d    现在打开你的电脑,我们要做一些很有趣的尝试。进入Windows后 点击:开始>运行 然后输入“cmd”并会车(如果是Win98请输入“COMMAND”),这时你会看到Windows的命令控制台,我们就是要利用它完成我们剩下的测试,以下包含了很多命令其中{}中的字符是我的注释: & O) E. Z2 J7 r# n7 w
  3 q% n$ [+ W' e+ X4 V' A  ^/ x, @
quote: 8 _4 z- r% q0 U* R, p; @

" k5 R# o/ D; D" |1 a4 H4 d
. y/ r# X! u6 w. oMicrosoft Windows XP [版本 5.1.2600]
# w$ a+ T3 p2 `5 P( q8 C! @(C) 版权所有 1985-2001 Microsoft Corp.
% I; L" X0 G, D! G9 R8 V6 ^$ Z1 V2 o# x
F:\Test>mkdir s\ {我们的第一次尝试,结果Windows只创建了S文件夹"\"被忽略掉了}
: Q, l9 h, s) X2 J, w) Y0 H4 J( t* D* {5 ^0 p/ [
F:\Test>mkdir s\s1\ {还是失败,Windows先创建了S文件夹,然后在S内创建s1文件夹}
9 V! T9 R" L' o) b, X) L, c
. S# L  M; j, @* ~, cF:\Test>mkdir s.\ {"s.\"被解析成S".\"又被忽略了}
" n* E' ]' U4 {/ f& S' M子目录或文件 s.\ 已经存在。 - L9 V! i" d/ k" I1 n+ D2 U! H+ @

4 l8 u4 Y- w4 VF:\Test>mkdir s..\ {终于成功了,现在你可以在资源管理器看到"s."但却无法打开/删除}
8 }$ X4 p3 ^0 Q' u% f5 U
+ d5 W; r% U4 NF:\Test>mkdir s...\ {又成功了,在资源浏览器能看到"s.."可以打开但是无法删除}
0 ?* x' l& [; w 
4 v+ K/ f/ d8 F( \  {% U7 R1 B
1 c/ S/ S( p6 k- a8 }# c" @8 P* B* S( L$ w
    为什么会这样?我们先说你看到的这个“S.”文件夹,他即不能打开也不能删除,不能打开是因为他的实际路径是“F:\Test\s..\”(我们自己创建的所以可以确定他的实际路径)但是在Windows资源管理器中名字变成了“S.”也就是说当你试图打开它的时候Windows实际上尝试打开“F:\Test\s.\”当然是不能打开的,文件并不存在,所以Windows会报错。不能删除也是因为这个,Windows把一个实际存在的文件路径错误的解析为一个不存在的路径,并进行操作当然是无法完成的。
9 U: s! K; r  t9 E8 e. N0 a: a" A: ]8 q/ c
    该说“S..”这个文件了,这个文件可以打开,但是却无法删除。等等……打开?你以为Windows真的是打开了我们创建的“s...\”文件了吗?我们做下面的试验你就明白了。还是老规矩{}是我的注释方便大家理解:
) @$ v  M  w5 }7 s  ( r: w  O. Y" Q6 ?' f4 I
quote: : c! Q* ]0 e: A" {
2 R5 H- k! H: {% X/ N

+ u+ B# }  U( I' t6 Q* [Microsoft Windows XP [版本 5.1.2600]
7 i: r1 l  ~. ]8 t$ l( S, o3 }2 z(C) 版权所有 1985-2001 Microsoft Corp. 2 y) ]: x, p( y* g& k5 Q0 ~

0 r/ M! r5 e% f" Y6 Y! j% WF:\Test>echo 1 > Txt1.txt {创建“F:\Test\Txt1.txt”文件} 3 C$ I8 k$ v8 A2 M" h
5 u9 ?5 ~9 i4 p
F:\Test>copy Txt1.txt s..\ {复制刚刚创建的文件到“s..\”,就是资源管理器的“S.”}
1 ^) p4 \+ \  N已复制 1 个文件。 - g2 p1 g: o, D* i  s3 r; W/ b

9 {- ?, Q, \1 k. v7 N) G* HF:\Test>echo 2 > Txt2.txt {创建“F:\Test\Txt2.txt”文件}
4 t+ Y9 Y% J" h0 P3 L, r; X1 X0 M  ~) Q$ C# A# T. B
F:\Test>copy Txt2.txt s..\ {复制刚刚创建的文件到“s...\”,资源管理器的“S..”}
3 b; \# w" j/ ~8 ~3 ?$ A; |+ u已复制 1 个文件。 . ^# |7 Q3 b8 }; c$ p7 Q

9 U  c0 v3 z$ x; z1 M! \F:\Test> 8 L8 |3 z" @9 W5 _5 k2 G  Q
( {- p/ g/ J0 H1 v7 Q# a3 j: V
 4 b. K" D$ G! R5 ?, M  P5 ]

$ d- c7 ~* A. D0 G" v- {( u4 v8 P
    现在回到你的资源管理器打开“S..”文件夹,你看到了什么?“Txt1.txt”文件怎么会在这里?我们刚刚的确复制到了“S.”呀?难道我们打开“S..”文件夹实际上就是打开了“S.”?不错事实就是这样。其实如果你再创建一个“S”文件夹的话“S.”就能打开了,但是实际上打开的是“S”。
  X. _# h" S, z$ E
$ ^6 J5 c0 c' @9 W; O5 X    “我该怎么删除它呢?”,删除它也不算很难,但是常规的方法是绝对删不掉的。有两种方法可供选择:1;进入DOS删除(不推荐)。2;还是进入命令提示符然后输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。删除实例:
8 z3 A4 I8 T" s& C6 ] 
" h2 x4 \3 |# @quote: / R" t/ s" Z$ Y; e6 ^: K
3 K# U' n9 W- h/ W6 ]& T
Microsoft Windows XP [版本 5.1.2600]
3 e/ l1 k- E- ~7 e  @7 \  h( N6 h(C) 版权所有 1985-2001 Microsoft Corp.
* E+ B0 B4 V. i8 Y- u) I+ M1 Q' X( P* e2 C
F:\Test>dir
) e) y( b( D8 J驱动器 F 中的卷是 BGTING
$ S% F  r+ J! f8 \卷的序列号是 2C8E-FE1C . I" o- G! y4 a2 K. X
+ d  E! c( J" T2 @
F:\Test 的目录
/ |: g9 Y, h* o
) J, G+ D% M: ^% p0 Y$ D4 W2003-09-11 17:50 <DIR> . ! o. S4 f1 `0 W7 d2 j9 B+ q
2003-09-11 17:50 <DIR> .. ( [: x" \$ ]5 d3 F& `5 M4 Z
2003-09-11 18:35 <DIR> s.
# T! ?5 D( ]; ?5 [3 _9 B* ?0 q2003-09-11 18:37 <DIR> s..
  C0 B& {1 ^; R5 m7 A0 v8 ?0 ^9 \1 个文件 9 字节
) Q) U1 J( |$ E& m2 q" U8 x8 q5 个目录 3,390,029,824 可用字节 ; Y) y- e1 @, @  D# F( d

: [& V2 n: G$ e# [9 pF:\Test>rmdir s..目录不是空的。
: H7 u8 t/ T) o/ r% G
4 w" Z# l5 \# \8 c' s& T1 m8 uF:\Test>rmdir s..\ /s
4 P& R' e% c+ i. Q3 b8 z7 ys..\, 是否确认(Y/N)? y
1 s/ g. d+ T; {4 v( R$ _5 [& c" Z! o7 Y7 n" u, |9 a
F:\Test>rmdir s...\ /s
! C( a9 Z# f/ B- {" I% |5 Ks...\, 是否确认(Y/N)? y 3 g: {, m% }2 v9 r4 `+ V. n
   M5 a% \( J' k4 s
' J5 l8 f, C+ S/ Q0 S  C* C$ ], Q
& f7 r9 M! z. z$ E
    利用这个漏洞我们可以做很多事情,比如想访问“S”文件夹,但是没有权限的时候我们可以创建“S..\”来指向“S”这样就可以跨权限浏览。而且新一代的木马程序很可能利用此漏洞把自身藏在某个“X..\”目录下这样用户根本不可能发现他,就算专业级的杀毒软件也只会去杀“X”而跳过“X..\”。如果恶意程序在机的计算机上创建很多“..\”文件夹的话,哈哈~那个时候Fotmat也许是最好的选择了。现在微软官方好像还没有发布任何防范措施。 ; B4 o4 S1 d. S; ^$ u
# ^4 Q9 T8 g. t& w) E+ @. ]) [

  }4 x7 J9 b$ n/ B: n    怎么样是不是有点晕了?不要怕“晕”是很正常的,我已经晕了很多次了。 :)
1 k* ]7 L; w& k" z5 k( F; S# }! H& I) q' M9 j* w6 }
( ^/ k6 Y; C3 C; K& l' M
好了,说了这么多可能有点乱了。下面我总结一下:6 l  j5 m- g" w
1 J, _$ B! e. |5 {
    1;在Windows中创建“X..\”文件夹后该文件夹将无法通过常规方法删除,但是却可以Copy文件进去,在资源管理器显示为“X.”,错误的指向“X”文件夹。(嘿嘿,怎么有点像快捷方式?)
1 A6 Z$ j$ I/ U( X! c3 o. |2 D8 Q- i/ E4 w- B2 N1 j3 C
    2;创建“X..\”的方法是在命令行输入“mkdir X..\”。 ! W1 n6 w- L" j8 F

1 m# k5 F2 {$ O. Z    3;删除它的方法是在命令行输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。 / M' G4 }6 v& H+ J/ q7 a
' ]; L* ?2 H' U% u  q* u/ u+ C" B
    4;暂无防范方法。
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
itdesigner 发表于 2005-5-16 04:03:59 | 显示全部楼层
晕,没试,不过感觉废话多
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| Lindx 发表于 2005-5-16 04:08:26 | 显示全部楼层
口气不小啊,小子
4 n  y# D: I% @; S) P+ ^" E" l我试过了,非常好用
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|龙江曦月 ( 闽ICP备05009150号-1 )闽公安网备35060202000316

GMT+8, 2025-5-26 04:50 , Processed in 0.051560 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表