為了兼容16位MS-DOS程序,Windows為文件名較長的文件(和文件夾)生成了對應的windows 8.3 短文件名,攻擊者可利用此漏洞枚舉網絡服務器根目錄中的文件
- 當我們訪問一個長名稱目錄的時候:http://127.0.0.1/administrator
- 這個administrator目錄可以簡寫為admini~1
- 根據這個上述格式,我們訪問/admini~1也可以相當於訪問administrator
產生:
Windows系統為了兼容16位MS-DOS程序,Windows為文件名較長的文件(和文件夾)生成了對應的windows 8.3 短文件名.且這種特性被IIS中間件繼承.
范圍:
以IIS為中間件的asp網站(網站URL以<.asp,.aspx>為后綴結尾)
測試:
若:
-
http://127.0.0.1/*~1****/a.aspx 返回404(找不到頁面)
-
http://127.0.0.1/l1j1e*~1****/a.aspx 返回400(客戶端請求錯誤)
則:
- 網站可能存在IIS短文件枚舉漏洞
注:
- 在IIS不同版本中,返回的參數會有略微差別
工具:
- nmap -Pn --script http-iis-short-name-brute
修復
百度方案:
- 禁止url中使用“~”或它的Unicode編碼;
- 關閉windows的8.3格式功能;
- 將.NET Farrmework升級至4.0
最終的方案(僅作參考):
- 修改注冊表項:(重啟服務器生效)
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation
值為1; - 執行DOS命令, fsutil behavior set disable8dot3 1;
- 刪除現有的IIS目錄重新部署,完成此步驟才能完全修復