淺談短檔名漏洞
短檔名漏洞:
為了相容16位MS-DOS程式,Windows為檔名較長的檔案(和資料夾)生成了對應的windows 8.3 短檔名。
比如說,如果我在我存小片片(劃掉)存工具的E盤裡建立了一個名為abcdefghijklmnopgrstuvwxyz.avi(某訊攔截這個親切的拓展名,改成全形字元才能打出來)的檔案
用dir /x命令檢視

OK可以看到他生成了一個短檔名ABCDEF~1.AVI(某訊攔截這個親切的拓展名,改成全形字元才能打出來),經過觀察可以發現,短檔名只顯示前六位。
短檔名漏洞存在要求:
短檔名漏洞需要兩個要求,第一網站用aspx,第二是windows環境。
其中,如果為容器為apache且執行在windows下,遇到可以下載的檔案,並且檔名還很長,那麼無需猜解長檔名,直接用短檔名就可以下載了。
一想到可以用這個來日apache的某國大片網,免費下載付費大電影,想想都刺激~(咳咳,言歸正傳)
短檔名漏洞驗證:
首先殺掉幾個網管祭出payload:
/*~1****/a.aspx

圖片發自簡書App
/l1j1e*~1****/a.aspx

圖片發自簡書App
如果用第一個payload:/*~1****/a.aspx顯示的是404.用第二個payload:/l1j1e*~1****/a.aspx顯示的是400比如“錯誤的請求Bad Request”之類的話那麼久確診無誤可以上他了
接下來我們猜他有沒有存在一個開頭是a的檔案,payload:/a*~1****/a.aspx

圖片發自簡書App
OK,返回404,存在a開頭的檔案,繼續以a開頭abcde往下猜,payload:/aa*~1****/a.aspx

圖片發自簡書App
沒有開頭為aa的檔案,試試ab

圖片發自簡書App
存在ab開頭的檔案,繼續以ab開頭abcde往下猜,payload:/aba*~1****/a.aspx
就這樣慢慢猜猜完所有a開頭的猜b,然後cbdefg,然後猜數字猜數字+字母,猜完為止。
接下來要考慮一個嚴肅的問題,怎麼判斷他是不是資料夾呢?
比如說我們猜到了/access~1****/a.aspx

圖片發自簡書App
只需要刪掉那四個*就ok啦。payload:/access~1/a.aspx
如果還是404,那就說明這是個資料夾

圖片發自簡書App
接下來,光知道是檔案沒卵用,還要知道是什麼檔案接下來猜拓展名.payload:/abcdef~1*a**/a.apsx
科普:拓展名就是avi,mpg,mov,qt,rar,zip,jpg之類的字尾,比如說我文章裡上傳的圖片是jpg格式的
比如說我們找到一個開頭為output的檔案,然後我們提交/output~1*a**/a.aspx

圖片發自簡書App
好的返回400,不存在拓展名為a的檔案(可以判斷沒avi格式的小片片)
接下來把a換成b換成c換成d......直到換到返回404為止

圖片發自簡書App
拓展名第一個字母是z,接下來繼續猜第二個字母。payload:/output~1*za*/a.aspx
就這樣一直猜,直到猜完後面的星號

圖片發自簡書App
這時你會發現只能猜拓展名的三個字母如果檔案是html,那隻能猜到htm
漏洞意義:
我bb這麼多,這個漏洞的意義何在?
1.能猜後臺地址
2.能猜敏感檔案
3.說不定能直接下載這個檔案
漏洞缺陷:
1.一般來說必須是IIS+apsx
2.檔名只能猜前六位,拓展名只能猜前三位
3.檔名很短的話是沒有短檔名的
poc:
直接發poc會被攔截,某訊一天到晚意淫有人要從部落裡幹他,所以程式碼貼出來的話會被ban,文章發不出去,大家想要利用工具的話可以私下裡找我,工具是python2寫的,環境請自備,有對技術有興趣的也可以找我來聊聊,我隨時歡迎~~
文章技術含量不高,大佬勿噴,碼字貼圖不易,如有不足還請大家多多包涵