Windows 短文件名相关 - IIS短文件名泄露

今天接网安通告,说服务器有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短文件名问题了

posted @   光和环  阅读(291)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示