首页 » NetworkSec » Penetration » 正文

重温经典-IIS短文件名漏洞分析及利用

0x00 前言

早就听说过这个Bug,上古级别的漏洞,一直没有实战过,前段时间有幸遇到一个实例,顺便重温下这个经典漏洞。

 

0x01 利用条件

IIS+.NET都开启。

 

0x02 漏洞分析及利用

为了兼容ms-dos,对于一些长文件(或文件夹)名,windows会以win 8.3格式生成对应的短文件名。

格式是长文件名的(前6个字符)+(~)+(1到9)+(.)+(后缀前3位),如下图:

可以看出长文件名的短文件名是111111~1.txt。

而这个漏洞的原理就是构造出存在的短文件名返回404,不存在的短文件名返回400。

这里要利用*通配符,如ind*~1****返回404,and*~1****则返回400,由此可以暴力猜解短文件/文件夹名。

奉上实战测试效果图:

利用脚本:https://github.com/lijiejie/IIS_shortname_Scanner

利用此漏洞最明显的可以猜测后台地址,下载备份文件,sql文件,还可以dos攻击。

 

0x03 修复方案

1.禁止url中使用“~”或它的Unicode编码。
2.关闭windows的8.3格式功能。

3.修改注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1,再重启下机器。(此修改只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除),

4.如果web环境不需要asp.net的支持则可以进入Internet 信息服务(IIS)管理器 — Web 服务扩展 – ASP.NET 选择禁止此功能。

5.升级net framework 至4.0以上版本.

6.将web文件夹的内容拷贝到另一个位置,如E:\www到E:\www.back,然后删除原文件夹E:\www,再重命名E:\www.back到E:\www,如果不重新复制,则已存在的短文件名不会消失。

 

0x04 结语

猜不到后台时不妨试试,也许会给你一个惊喜。

 

Comment