清参阅一下下面的文章,不知是否适合你的问题〉
Windows系统路径漏洞利用祥解
关于有些教程中公布的DOS命令建立S..\文件夹的祥解。
--------------------------------------
大家都知道在Windows文件夹中“\”的符号是路径的分隔符号。
C:\windows\SYSTEM.exe
↓ ↓ ↓
盘符 文件夹 EXE应用程序。
--------------------------------------
如果文件名有\符号会怎么样?
假如“S\”是一个文件夹的名字,它位于 C:\,它的路径就是“C:\S\”,当你试图访问的时候,
Windows会错误的认为我们要打开的是C分区的S文件夹,这样就会返回一个错误,因为以上的路径不存在。
当然,要访问,首先要建立,windows肯定会拒绝,因为"\"字样不允许出现。
下面我们就建立包含"\"符号的文件夹。
--------------------------------------
打开CMD.EXE,
输入,C:\mkdir s\
C:\mkdir s\sl\
C:\mkdir s.\
子目录或文件 s.\ 已经存在。
C:\mkdir s..\
C:\mkdir s...\
--然后删除s\
你看到的"S."文件夹,它既不能打开,也不能删除,不能打开是因为它的实际路径
是"c:\s..\"(我们自己创建的,可以确定它的绝对路径,)但在资源管理器中,名字成了 "S.\"
也就是说,当你访问的时候,windows实际上打开的是"C:\S..",当然是不能打开的,文件并不存在
所以会报错,不能删除也是这个原因。windows把一个实际存在的路径名字错误的解析成不存在的名字,
当然是无法执行的。
该说"S.."这个文件夹了。这个文件夹可以打开,却无法删除。真的是打开了吗???Windows真的是打开了这个文件夹??
做个实验你就明白。
C:\echo 1 >txt1.txt
C:\copy txt1.txt s..\
C:\echo 2 >txt2.txt
C:\copy txt2.txt s..\
现在回到资源管理器,"S.."文件夹,"TXT1.txt"竟然在这。。。
其实打开"S.."就是打开了"S." ,不要不信,事实就是。如果再创建个"S" 文件夹,"S."就能打开了,但事实是
打开的是"S".
那么该怎么删除呢???
1,进入DOS删除(不推荐)
2,进入MS-DOS,输入"rmdir 目录名"命令删除,如果忘记了,可以打开资源管理器,进入目录,察看该文件夹名字。
然后加上".\",如果提示"文件夹不是空的",应该加上"/s".
删除实例:(演示)
--------------------
呵呵,到了这里,我们可以利用这个漏洞做很多事情,ASP马。。。。。
本身没有权限,我们建立"S.."指向"S",这样就可以跨权限浏览。杀毒软件也只会查"X"目录,而跳过"X..\"除了
FORMAT,目前好像没有方法可以防范。
--------------------
总结,在windows中创建"X..\"文件夹后该文件夹将无法通过常规的方法删除,但是可以用" copy"文件进去。资源管理器显示"X.",错误的指向"X"文件夹。
2,创建文件夹的方法,当前路径>mkdir x..\
3,删除的方法,当前路径>rmdir 目录名 .\,若提示"文件夹不是空的",则加"/s"参数。