Windows文件系统漏洞-小漏洞--大用处

1.Windows中很有用的文件替换命令,绕过文件保护
用来替换文件的replace,连正在使用的文件也能替换。非常无敌。 
比如:在C:\下建一个目录,c:\aaa 
然后复制一首mp3到c:\aaa并命名为c:\aaa\a.mp3 
然后再复制另一首歌到C:\a.mp3 
然后用media player 播放c:\aaa\a.mp3 
在命令提示符下输入:replace c:\a.mp3 c:\aaa 
过一会,是不是播放的歌已变为另一首。 
用这个命令来替换系统文件真是太爽了,并且XP的系统文件保护也对它无效。 
再也不用到安全模式下去替换文件了
2.Windows文件系统漏洞-小漏洞,大用处
    大家都知道在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的命令控制台,我们就是要利用它完成我们剩下的测试,以下包含了很多命令其中{}中的字符是我的注释: 
 
quote: 
--------------------------------------------------------------------------------
Microsoft Windows XP [版本 5.1.2600] 
(C) 版权所有 1985-2001 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...\”文件了吗?我们做下面的试验你就明白了。还是老规矩{}是我的注释方便大家理解: 
 
quote: 
--------------------------------------------------------------------------------
Microsoft Windows XP [版本 5.1.2600] 
(C) 版权所有 1985-2001 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”参数。删除实例: 
 
quote: 
--------------------------------------------------------------------------------
Microsoft Windows XP [版本 5.1.2600] 
(C) 版权所有 1985-2001 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”参数。
    4;暂无防范方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GCC是GNU Compiler Collection的缩写,是一套开源的编程语言编译器。4.4.7-23是GCC的一个版本号。 GCC 4.4.7-23是GCC的第4.4.7版本的第23个更新版本。这个版本的GCC是在2017年10月发布的,是GCC 4.4系列的最终更新版本。GCC 4.4系列主要支持C和C++两种语言的编译。 GCC作为一款优秀的编译器,具有很多特性和功能。它提供了广泛的语言支持,包括C、C++、Fortran、Java、Objective-C、Ada和Go等,能够用于不同类型的程序开发。GCC还支持多种操作系统,包括Linux、Windows、Mac OS等。 GCC的主要功能是将源代码编译成可执行文件或库文件。它可以进行语法分析、语义分析、优化和代码生成等步骤,将高级语言源代码转化为特定目标平台上的可执行文件。GCC在编译过程中还提供了丰富的选项和参数,可以控制编译过程的行为,例如优化等级、目标平台的选择等。 GCC还提供了一些工具和库,用于程序开发和调试。例如,GCC提供了GDB调试器,可以帮助开发人员在调试时定位问题。此外,GCC还提供了一些用于优化和分析的工具,例如性能分析器和代码规范检查工具。 总之,GCC 4.4.7-23是GCC编译器的一个具体版本,具有广泛的语言支持和功能,可以帮助开发人员进行程序的编译、调试和优化。 ### 回答2: GCC是GNU编译器套件的缩写,是一种开源的编译器工具。gcc 4.4.7-23是指版本号为4.4.7,补丁级别为23的gcc编译器。 gcc 4.4.7-23是较旧的gcc版本,于2011年发布。它是gcc 4系列的一个分支,该系列是gcc非常稳定和广泛使用的版本之一。在4.4.7-23版本中,包含了一些已知的错误修复和改进,以提高编译器的稳定性和性能。 由于gcc是一个开源项目,它可以在多个操作系统上运行,如Linux、Windows和macOS等。gcc 4.4.7-23版本支持许多不同的编程语言,包括C、C++、Objective-C、Fortran、Java和Ada等。 gcc编译器具有强大的优化功能,可以将源代码编译为目标代码,以便在不同的架构上运行。它能够执行诸如语法检查、代码优化和生成可执行文件等任务。 然而,由于4.4.7-23版本相对较旧,可能不支持最新的语言特性和标准,也可能存在一些已知的问题。因此,在选择使用gcc版本时,需要根据具体的需求和项目要求进行评估。 总之,gcc 4.4.7-23是一个较旧但稳定的gcc版本,适用于旧的项目或对最新特性要求不高的项目。在使用时,需要根据项目需求选择合适的gcc版本。 ### 回答3: gcc 4.4.7-23是一个编译器的版本号。gcc代表GNU编译器集合,是一个广泛使用的开源编译器套件。4.4.7是编译器的主要版本号,表示该版本的gcc是从4.4.x系列发展而来的。每个主要版本可能包括多个次要版本和修订版本,这里的23即表示该gcc版本的修订版本。修订版本意味着在之前的版本基础上进行了一些改进或修复错误。 gcc 4.4.7-23是一个比较老的gcc版本,适用于早期的编程需求。由于gcc是开源的,它的版本号反映了它的开发历史和功能特性。较新的gcc版本通常包含更多的优化和功能改进,因此更适用于现代编程需求。 每个gcc版本都有其特定的用途和适应范围。gcc 4.4.7-23可能不支持一些新的语言特性或编程库,也可能存在已知的安全漏洞。因此,在选择gcc版本时,需要根据实际需求和项目要求进行评估和选择合适的版本。 总之,gcc 4.4.7-23是一个早期的gcc版本,用于编译代码并生成可执行文件。它的功能可能相对较旧,但对于一些特定的项目需求仍然有其存在和应用的价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值