zoukankan      html  css  js  c++  java
  • windows文件命名特性利用漏洞

    windows文件命名特性利用

    0x00

    windows不能以以下这些名字命名文件或文件夹: aux、com1、com2、prn、con、nul,因为这些名称都属于设备名称,等价于DOS设备,但我们可以通过cmd来创建这样的文件
    >md com2
    >md \.d:com1\
    >copy test.txt \.d:com1.txt
    #注意文件夹名例如aux.txt也是不行的,如果通过cmd命令创建了这样的文件夹,它同样具备dos设备属性,另外

    正常在GUI界面是不能删除上面创建的文件,可以通过如下的命令删除
    rmdir /s \.d:com1.txt /s表示删除目录树,即包括子文件夹和文件
    del \.D:aux.txt
    rmdir .aux#这个我是直接在aux文件夹的父目录上操作的命令
    rmdir F:com1#可以加\. 也可以不加,两者区别我不清楚在哪,这个被称为UNC 路径格式,就是网上邻居的路径格式,比如d:/temp的UNC 路径为//./d:/temp

    0x01

    接下来这个说是windows命名漏洞,但没找到详细的说明
    简单来说就是文件夹名字后面有个.
    直接通过GUI操作是不能建立这样的文件夹的,windows会默认去掉后面的.
    可以通过如下方式创建
    >md test.. #这里是两个. 显示上也会是直接的test..,我并不明白这是怎么回事,可能是win10改了特性吧,而且它并不会不能打开

    根据测试,创建的test..这个文件夹不可直接删除,如果将别的文件移入此文件夹中,系统将会自动生成test文件夹(空),并且test..文件夹里的东西不可见了,这时若删除test文件夹,tset..文件夹中内容便可见了,没有删除时,test文件夹里有什么,test..文件夹里同样会显示,但打不开,会提示不存在。
    还一个有趣的发现是test文件夹的属性中占用空间大小是多少test..文件夹的也会是多少
    同时如果手动创建一个test文件夹,效用和上面是一样的,这样的话如果本身就存在一个文件夹,而我们创建一个同样名字加..的文件夹,那么也会实现上面的特性
    不过其也可以通过cmd删除:删除命令>rmdir /s test..

    0x02

    名字为空的文件夹
    >md " est "#注意 之间有一个空格,这个命令会在当前目录的根目录下创建一个test文件夹,并且里面含有一个空白文件夹,这个test文件夹也是不可直接删除
    删除命令rd "D: est "#这会删除test目录下的空白文件夹,如果空白文件夹里已经有了文件需要加/s参数,另外test文件夹里的其它所有内容也会在空白文件夹中显示。

    0x03

    更改文件名,在文件名后加上.{CLSID},可是我在我的win10上面试了并没有用,可能也更新修复了吧

    0x04

    对于. 或者空格 结尾的文件,windows会自动去除.和空格,两者相互结合也是一样

    test.txt....  ->	test.txt
    test.txt   	  ->	test.txt	#这里前面的后缀后面有一个空格
    test.txt..	  ->	test.txt
    

    本来应该还有其它的特殊命名,但windows命名规则改了不允许出现:符号,所以其它的也就没有用了,这些可以用来躲避上传黑名单限制

    我自己测试时和网上很多其它文章描述并不一样,windows改了挺多特性,具体详细情况需要各位自己亲自试验,利用得当的话 这些对于用来上传webshell是挺好的

  • 相关阅读:
    AngularJS中实现无限级联动菜单
    理解AngularJS生命周期:利用ng-repeat动态解析自定义directive
    denounce函数:Javascript中如何应对高频触发事件
    Javascript中的循环变量声明,到底应该放在哪儿?
    优雅的数组降维——Javascript中apply方法的妙用
    如何利⽤360Quake挖掘某授权⼚商边缘站点漏洞
    Java课程设计--网络聊天室
    DS博客作业08--课程总结
    DS博客作业07--查找
    DS博客作业06--图
  • 原文地址:https://www.cnblogs.com/GH-D/p/11210667.html
Copyright © 2011-2022 走看看