今天接网安通告,说服务器有IIS短文件名泄露。
可这短文件名是什么?拿完通告后回来一通查了个遍终于看明白了。
先说短文件名是什么
资料传说很久很久以前windows的文件名不能超过8个文件名和3个扩展名,也就是12345678.123就是最大长度了。
但是到了windows95的时候,这个长度被扩展到了主文件名+扩展名不超过255个字符。
但为了保证兼容性,win提供了一种转换方式,使用~和数字来缩短文件名长度,比如"C:\Program Files"被转换成了"C:\Progra`1"。
好处是一些较老的应用程序也能在新的windows平台上使用。就这样,这个模式一代一代的被流传下来。
fsutil 8dot3name 命令可以查看有关NTFS8.3的内容。我们来运行一下
fsutil 8dot3name
---- 支持的 8DOT3NAME 命令 ----
query 在系统上查询当前设置的短名称行为
scan 扫描受影响的注册表条目
set 更改控制系统上短名称行为的设置
strip 删除目录中所有文件的短名称
比如我们来查询c盘是否启用了NTFS8.3
fsutil 8dot3name query e:
卷状态为: 0 (8dot3 名称创建已启用)。
注册表状态为: 2 (按卷设置 - 默认值)。
使用set尝试关闭它 #这是关闭卷状态
fsutil 8dot3name set e: 1
使用扫描命令查看一下
fsutil 8dot3name scan /s e:/
正在扫描注册表...
受影响的注册表项总数: 0
正在扫描 8dot3 名称...
扫描的文件和目录总数: 225400
发现的 8dot3 名称总数: 0
除去的 8dot3 名称总数: 0
如果成功后但是却发现文件的段名称还在,那么我们需要手动进行清理
fsutil 8dot3name strip /s e:/
正在扫描注册表...
受影响的注册表项总数: 0
正在去除 8dot3 名称...
扫描的文件和目录总数: 225386
发现的 8dot3 名称总数: 218760
除去的 8dot3 名称总数: 218760
重新创建个文件试试,没问题了
注册表关闭 # 这是在所有卷上关闭的方法,变更完后还需要使用fsutil 8dot3name相关命令清理短文件名
在注册表中找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
将其中的 NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式 0为开启
再次查看状态
fsutil 8dot3name query e:
卷状态为: 1 (8dot3 名称创建被禁用)。
注册表状态为: 1 (禁用所有卷上的 8dot3 名称创建)。
这样就完美解决windows短文件名问题了
标签:IIS,文件名,Windows,8dot3,fsutil,名称,注册表,8dot3name From: https://www.cnblogs.com/ifar/p/17295919.html