1.1.1 漏洞描述
為了兼容16位MS-DOS程序,Windows為文件名較長的文件(和文件夾)生成了對應的windows 8.3 短文件名。 在Windows下查看對應的短文件名,可以使用命令 dir /x
只有前六位字符直接顯示,后續字符用~1指代。其中數字1還可以遞增,如果存在多個文件名類似的文件(名稱前6位必須相同,且后綴名前3位必須相同)。后綴名最長只有3位,多余的被截斷。我們可以在啟用.net的IIS下暴力列舉短文件名,原因是:
訪問構造的某個存在的短文件名,會返回404
訪問構造的某個不存在的短文件名,會返回400
1.1.2 漏洞測試
1.1.3 漏洞利用
1.1.4 漏洞修復
通用有效方法:
禁用windows系統中的短文件名功能。
打開注冊表並打開此目錄 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
修改 NtfsDisable8dot3NameCreation 的值為1 。
修改完成后,需要重啟系統生效。
2)簡單有效方法:CMD命令
Windows Server 2008 R2
查詢是否開啟短文件名功能:fsutil 8dot3name query
關閉該功能:fsutil 8dot3name set 1
Windows Server 2003
關閉該功能:fsutil behavior set disable8dot3 1
3)手動驗證
新建文件夾並創建幾個文件,打開CMD進入該文件夾呢執行dir /x 檢測,看不到有顯示短文件名則成功。
注: 1.Windows Server 2003修改后需要重啟服務器生效!
2.已存在的文件短文件名不會取消,只對以后創建的文件有效!
3.WEB站點需要將內容拷貝到另一個位置,
如D:\www到D:\www.back,然后刪除原文件夾D:\www,再重命名D:\www.back到D:\www。
如果不重新復制,已經存在的短文件名則是不會消失的。