美文网首页
IIS 短命名文件泄露

IIS 短命名文件泄露

作者: 鸡翅儿 | 来源:发表于2019-03-19 15:49 被阅读0次

    漏洞简介

    为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名

    Windows下使用dir /x命令查看对应的短文件名

    1.png

    短文件名特征:

    1. 只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
    2. 后缀名最长只有3位,多余的被截断。
      可以在启用.net的IIS下暴力列举短文件名,

    漏洞成因:

    访问构造的某个存在的短文件名,会返回 404
    访问构造的某个不存在的短文件名,会返回 400

    漏洞探测:

    漏洞的利用,需要使用到通配符。在windows中,可以匹配n个字符,n可以为0. 判断某站点是否存在IIS短文件名暴力破解,构造payload,分别访问如下两个URL:
    A:www.test.com/~1****/a.aspx
    B:www.test.com/wtest
    ~1****/a.aspx
    访问 A 返回 404,访问 B 返回 400,则站点存在漏洞

    目录猜解

    1. 访问 www.test.com/a*~1****/a.aspx
      如果返回 404,则证明存在以 a 开头的文件或文件夹
      以此来猜解出六位字符
    2. 例猜解完结果为:www.test.com/abcdef~1****/a.aspx
      如果以 abcdef 开头的是一个文件夹,则访问 www.test.com/abcdef
      ~1/a.aspx 返回 404
      如果以 abcdef 开头的是一个文件,则继续猜解 www.test.com/abcdef~1g**/a.aspx
      继续猜解 g 位置的字符,返回 404 则代表存在。以此猜解完后缀名中的三个字符。

    漏洞局限性

    1. 只能猜解前六位,以及扩展名的前3位。
    2. 名称较短的文件是没有相应的短文件名的。
    3. 需要 IIS 和 .net 两个条件都满足。

    漏洞修复

    1. 通用有效方法
      禁用windows系统中的短文件名功能。
      打开注册表并打开此目录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
      修改 NtfsDisable8dot3NameCreation 的值为1 。
      修改完成后,需要重启系统生效。
    2. 简单有效方法:CMD命令
    • Windows Server 2008 R2
      查询是否开启短文件名功能:fsutil 8dot3name query
      关闭该功能:fsutil 8dot3name set 1
    • Windows Server 2003
      关闭该功能:fsutil behavior set disable8dot3 1
    1. 手动验证
      新建文件夹并创建几个文件,打开CMD进入该文件夹呢执行dir /x 检测,看不到有显示短文件名则成功。
     注: 1. Windows Server 2003修改后需要重启服务器生效!
         2. 已存在的文件短文件名不会取消,只对以后创建的文件有效!
         3. WEB站点需要将内容拷贝到另一个位置,
            如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。
            如果不重新复制,已经存在的短文件名则是不会消失的。
    

    参考链接:https://segmentfault.com/a/1190000006225568

    相关文章

      网友评论

          本文标题:IIS 短命名文件泄露

          本文链接:https://www.haomeiwen.com/subject/kcuayqtx.html