漏洞成因
为兼容16位MS-DOS程序,Windows为文件名较长的文件(文件夹)生成了对应的windows8.3短文件名。
并且在Windows下查看对应的短文件名,可以使用命令 dir /x。
此漏洞实际是由HTTP请求中旧DOS 8.3名称的代字符(〜)波浪号引起的。它允许远程攻击者在Web根目录下公开文件或文件夹名称,这通常是不应该被访问到的。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。
实际用处
1、猜后台。
2、猜敏感文件,例如备份的rar、zip、.bak、.SQL文件等。
3、在某些情形下,甚至可以通过短文件名直接下载对应的文件。比如下载备份SQL文件。
漏洞的局限性
1、只能猜解前六位,以及扩展名的前3位。
2、名称较短的文件是没有相应的短文件名的。
3、需要IIS和.net两个条件都满足。
漏洞修复
1、升级.net framework
2、修改注册表键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem修改NtfsDisable8dot3NameCreation为1。
3、将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www,如果不重新复制,已经存在的短文件名则是不会消失的。
IIS短文件名漏洞利用实例
一个站,密码不是弱口令,还有验证码,自然不好爆破之类
扫描后台结果显示
访问/test.aspx
????
云悉信息搜集显示
Iis7.5和.net都具备了可以考虑一波是否存在iis短文件名漏洞
我使用的是李劼杰的工具:
https://github.com/lijiejie/IIS_shortname_Scanner
扫描结果如下
4个目录,共找到6个文件,现在开始猜解文件名
最后猜到/rninde~1.asp*应该是/rnindex.aspx,访问该页面
发现没有了验证码,我们便可以尝试爆破登录等。
通过这个案例总结一下
iis短文件名漏洞危害说大也大,说小也小。
危害大在于它可以让访问到一些未经授权的网站甚至下载到一些东西。
危害小在于猜解文件名有时还真不一定猜得出来,而且不是所以猜解出文件名的页面都有用处。