找回密码
 立即加入
搜索

查看: 857|回复: 2

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

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

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

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

×
大家都知道在Windows中“\”符号是路径的分隔符号,比如“C:\Windows\”的意思就是C分区中的Windows文件夹,“C:\Windows\System.exe”的意思就是C分区中的Windows文件夹中的System.exe文件,好继续我们假设一下: & q/ i+ B' D) M8 e- a3 Z3 t
如果文件名中有“\”符号会怎么样呢?假如“S\”是一个文件夹的名字,这个文件夹位于:“F:\”,他的路径就是“F:\S\”,当我们试图访问的时候Windows会错误的认为我们要打开的文件是C分区的S文件夹,这样Windows就无法打开并且会返回一个错误,因为以上的路径并不存在。
2 E' n, N; K& s. b7 g- G4 B/ s- `
+ z2 s, `1 q+ `: B0 W. ~    也许你现在正在尝试创建“S\”文件,但是Windows会提示你:“\”符号是不能作为文件、文件夹的名字的。看来Windows还是早已想到这一点了的。OK我们继续进行,就不信不能建立包含“\”符号的文件。
5 Y3 C' x. {, p6 m& A. o' @. K. |
    现在打开你的电脑,我们要做一些很有趣的尝试。进入Windows后 点击:开始>运行 然后输入“cmd”并会车(如果是Win98请输入“COMMAND”),这时你会看到Windows的命令控制台,我们就是要利用它完成我们剩下的测试,以下包含了很多命令其中{}中的字符是我的注释:
' {) @: J) ?; W8 [/ X6 o 
3 t6 [* i8 t6 Z& c+ xquote: ) k4 L1 _& x: d7 {; T4 b' @' w

+ L0 [, L, a) k0 @, n  O4 j
5 v6 M* A$ j# b; L5 T8 ?7 uMicrosoft Windows XP [版本 5.1.2600] & ~2 L$ e# [/ O. X3 K
(C) 版权所有 1985-2001 Microsoft Corp. 2 i, ~- c$ {. I, k  I
, t; Q- {- n) Z  v
F:\Test>mkdir s\ {我们的第一次尝试,结果Windows只创建了S文件夹"\"被忽略掉了}
1 b# B; {* v# E6 Z: P! @: [5 u- Q
F:\Test>mkdir s\s1\ {还是失败,Windows先创建了S文件夹,然后在S内创建s1文件夹}
9 |' k. b7 Y, {2 U4 w- L3 F7 d$ J, x! J  X* C5 I6 q, U
F:\Test>mkdir s.\ {"s.\"被解析成S".\"又被忽略了}
8 n# {: G4 E' |" s- U子目录或文件 s.\ 已经存在。
9 R- b  V- C( C$ J3 w1 }# \  C( o/ z1 J4 d, H, l3 _+ o
F:\Test>mkdir s..\ {终于成功了,现在你可以在资源管理器看到"s."但却无法打开/删除}
. N* y! e! L1 o2 S* w' y
$ h& a# K$ C& C. ]F:\Test>mkdir s...\ {又成功了,在资源浏览器能看到"s.."可以打开但是无法删除} 1 y. \& f5 [7 ]8 i+ f+ x+ a1 O
 + N/ R! z1 a' |7 w6 Z7 h( Z4 c

$ d$ B  G9 K5 h! k$ ?- Z  S( y' L
5 ]; c( ^4 E- T3 k, h2 b( o! @    为什么会这样?我们先说你看到的这个“S.”文件夹,他即不能打开也不能删除,不能打开是因为他的实际路径是“F:\Test\s..\”(我们自己创建的所以可以确定他的实际路径)但是在Windows资源管理器中名字变成了“S.”也就是说当你试图打开它的时候Windows实际上尝试打开“F:\Test\s.\”当然是不能打开的,文件并不存在,所以Windows会报错。不能删除也是因为这个,Windows把一个实际存在的文件路径错误的解析为一个不存在的路径,并进行操作当然是无法完成的。 3 s+ P" P! [- }1 x8 J5 j5 n0 Q" V9 y0 T

" P3 D/ P. O( C- F4 n+ O, B8 U    该说“S..”这个文件了,这个文件可以打开,但是却无法删除。等等……打开?你以为Windows真的是打开了我们创建的“s...\”文件了吗?我们做下面的试验你就明白了。还是老规矩{}是我的注释方便大家理解:
: F% Q+ u. E% `4 p! d) |! ]  1 ?0 D8 [$ I0 n  M, u$ u
quote:
7 K. p. Q- {, x' g
2 i3 o( F& i$ x2 Q; s
. U1 o5 j0 K* e% j' ]; A+ _Microsoft Windows XP [版本 5.1.2600]
& r0 j3 Z8 Z  J! `(C) 版权所有 1985-2001 Microsoft Corp.
' [0 a- d1 v+ f. J8 b2 h9 F
! j1 f& E/ {2 F$ n% w/ _F:\Test>echo 1 > Txt1.txt {创建“F:\Test\Txt1.txt”文件}
2 |8 {) K& z) W+ \+ ?2 Q8 ?' z/ W' }# \; [. h# i1 x- F; {( @2 l, d
F:\Test>copy Txt1.txt s..\ {复制刚刚创建的文件到“s..\”,就是资源管理器的“S.”}
# I) F$ o; l) z' Z0 g已复制 1 个文件。
4 E. O- E! M% M9 x
9 l- A+ G8 g) \0 V& N+ C/ s. _( TF:\Test>echo 2 > Txt2.txt {创建“F:\Test\Txt2.txt”文件} 0 T, m9 v$ m! S5 V$ k

+ W  {* s6 \' cF:\Test>copy Txt2.txt s..\ {复制刚刚创建的文件到“s...\”,资源管理器的“S..”}
- ?# `- V9 }  X/ S) M已复制 1 个文件。
( e' _7 {6 i5 C% M% u' {0 V- `9 j6 i. w
F:\Test>
) I# q& C; i" E# U- w, `+ |
4 b: A( a! F; o# T + e/ N5 U7 _0 u3 e

1 u0 ?/ a/ c- e# t+ [; r+ F  G* P
) K1 O+ ~( u9 p5 P' s+ n8 y' A    现在回到你的资源管理器打开“S..”文件夹,你看到了什么?“Txt1.txt”文件怎么会在这里?我们刚刚的确复制到了“S.”呀?难道我们打开“S..”文件夹实际上就是打开了“S.”?不错事实就是这样。其实如果你再创建一个“S”文件夹的话“S.”就能打开了,但是实际上打开的是“S”。
7 \. }! m1 ~1 v) n) g
% P$ w( [/ T7 y/ c7 ?# |7 T3 g    “我该怎么删除它呢?”,删除它也不算很难,但是常规的方法是绝对删不掉的。有两种方法可供选择:1;进入DOS删除(不推荐)。2;还是进入命令提示符然后输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。删除实例:
2 g- M1 {; l4 v, O  5 V) q+ |/ @: v/ C2 R
quote:
- P! T! c- l2 A$ O) t# I5 [  a4 p/ m1 E  M1 q0 V5 o
Microsoft Windows XP [版本 5.1.2600] " @$ R/ x  G) k
(C) 版权所有 1985-2001 Microsoft Corp. * I) A& [/ c; c" f" l

. Z: Z" H( B& t9 dF:\Test>dir
$ q( W2 s1 L1 Z* \驱动器 F 中的卷是 BGTING
2 k  I( M( a4 n. |2 d9 X' U卷的序列号是 2C8E-FE1C : ]8 j$ S$ i  w. @; v/ P& @; y

0 o' Z+ u+ x5 HF:\Test 的目录
3 m7 d6 Z  ?5 r9 s" U8 _
: n& D( G/ ?; H2003-09-11 17:50 <DIR> . ! N  a' c9 c5 A
2003-09-11 17:50 <DIR> .. : Q3 }& }7 [( O1 T
2003-09-11 18:35 <DIR> s.
& F- Y& W! X7 Y" w1 W/ d2 N) x2003-09-11 18:37 <DIR> s.. 8 t! ?& }, S0 {% ]+ F! ~+ \2 \
1 个文件 9 字节
4 G% N9 @; H! i9 A7 D5 个目录 3,390,029,824 可用字节
" x2 O# r4 B+ m. x: A
$ P- ^) L/ X8 N& @4 D6 hF:\Test>rmdir s..目录不是空的。
7 N! }5 p5 D1 g# i
5 K% R: |! a4 t  _- a4 k/ x8 Q# d7 kF:\Test>rmdir s..\ /s ( K% X* ~' B. e# {
s..\, 是否确认(Y/N)? y 3 T! {  \7 W7 E1 x6 V) x

- L, j4 |* Z. T# U( E2 I' f8 E! ~F:\Test>rmdir s...\ /s
' k7 X! ^5 |8 h9 j% O; y& is...\, 是否确认(Y/N)? y
# n! _4 j. h1 q3 p8 N0 \/ D& F( `8 t   K0 O6 b  |% q5 n3 Q
6 R0 h& a+ B& H; h7 c6 ~7 A  `4 U

3 H' j* k4 v! J8 q( P    利用这个漏洞我们可以做很多事情,比如想访问“S”文件夹,但是没有权限的时候我们可以创建“S..\”来指向“S”这样就可以跨权限浏览。而且新一代的木马程序很可能利用此漏洞把自身藏在某个“X..\”目录下这样用户根本不可能发现他,就算专业级的杀毒软件也只会去杀“X”而跳过“X..\”。如果恶意程序在机的计算机上创建很多“..\”文件夹的话,哈哈~那个时候Fotmat也许是最好的选择了。现在微软官方好像还没有发布任何防范措施。
! I, _! ~' b2 b$ A! U& O1 c* U$ z. Y3 S& z. X

9 a, u8 r: C. O1 M: X    怎么样是不是有点晕了?不要怕“晕”是很正常的,我已经晕了很多次了。 :)
, L1 _/ y% C2 x: N# B6 O8 \+ N
0 h! a5 v. T& R% l/ w' `. n! O
6 A! S5 z' k2 k1 T& Y1 w' K' W% U3 M好了,说了这么多可能有点乱了。下面我总结一下:3 @) M8 H4 `! o1 c3 w

6 ~( b( j& L: e/ k0 ?1 q. `    1;在Windows中创建“X..\”文件夹后该文件夹将无法通过常规方法删除,但是却可以Copy文件进去,在资源管理器显示为“X.”,错误的指向“X”文件夹。(嘿嘿,怎么有点像快捷方式?) / e+ a4 e8 K0 @" O7 Z

) A$ G9 ?' l( l    2;创建“X..\”的方法是在命令行输入“mkdir X..\”。 1 ]6 r7 J' m2 X, J8 Z7 v
3 l( A2 T  i0 {; D
    3;删除它的方法是在命令行输入“rmdir 目录名”,目录名就是你创建的时候的名字,如果忘记了可以先在资源管理器查看,然后加上“.\”。如果提示“文件夹不是空的”应该加上“/s”参数。 : ?9 i8 x' U* o! A; d
1 I! t. W# s/ o6 Z1 F! A- m) c: j
    4;暂无防范方法。
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
itdesigner 发表于 2005-5-16 04:03:59 | 显示全部楼层
晕,没试,不过感觉废话多
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| Lindx 发表于 2005-5-16 04:08:26 | 显示全部楼层
口气不小啊,小子
1 G1 n0 z% a, ~$ y: r9 v我试过了,非常好用
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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