IIS 短文件名猜解漏洞复现
Posted my-bl0g
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS 短文件名猜解漏洞复现相关的知识,希望对你有一定的参考价值。
漏洞介绍:为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的DOS 8.3 短文件名。
短文件规律:
1、前六位保留
2、所有小写字母均转换成大写字母
3、后续字符用~1表示
4、后缀最多显示三位,其余的被截断
5、长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件
(我没有找到存在哪个特殊字符的时候不能生成短文件)
漏洞利用:根据HTTP的响应区分一个可用或者不可用的文件。访问构造的某个存在
的短文件名,会返回404
;访问构造的某个不存在
的短文件名,会返回400
(报错页面)
构造payload为:IP/要匹配的短文件/.aspx
复现过程:
(1)http://192.168.201.129/a*~1*/.aspx,返回404,说明存在a开头的短文件名
(2)http://192.168.201.129/c*~1*/1.aspx,返回400,不存在c开头的短文件名
(3)依次在a后面尝试Aa-Zz和其它字符,返回404则保留该位,直至得出六位字符。
(4)找到短文件名的前六位之后,把前面的*拿掉,老样子尝试后缀。
漏洞的局限性:
1、因为是短文件名猜解,所以只能得到短文件名,即6位;且无短文件名的文件无法猜解。
2、文件名存在空格时,短文件名会忽略空格。
漏洞的解决方案:
1、升级netFramework至4.0以上版本
2、修改注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem的NtfsDisable8dot3NameCreation值为1,表示不生成短文件名,重启生效。
注:此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。如果不重新复制,已经存在的短文件名则是不会消失的
所以新建一些长文件名的文件,新的文件已经不会有短文件名了
萌新,大佬勿喷。
以上是关于IIS 短文件名猜解漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章