iis短文件名猜解

在不同的版本,短文件漏洞有不同的表现
并且以iis8.0为一个分界点:
1.iis8.0之前有六种http请求都可以用来猜解,DEBUG、OPTIONS、GET、POST、HEAD、TRACE
   8.0之后只剩下OPTIONS和TRACE方法
2.IIS8.0以下版本需要在web服务拓展里开启ASP.NET支持,iis8.0之后则是不需要

相关命令
cmd命令行输入:dir/x  可以查看到当前目录下文件的短文件名

什么是短文件名呢
一开始受限于机能,无法储存过长文件名,于是便使用算法生成长文件名文件的短文件名,通俗点说,为了好记,给某个名字过长的人起个代号

系统创建短文件名的规则是:
(1)、取长文件名的前 6 个字符加上”~1”形成短文件名,扩展名不变。
(2)、如果已存在这个文件名,则符号”~”后的数字递增,直到 5。
(3)、如果文件名中”~”后面的数字达到 5,则短文件名只使用长文件名的前两个字母。通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,然后加后缀”~1”直到最后(如果有必要,或是其他数字以避免重复的文件名)。
(4)、如果存在老 OS 或程序无法读取的字符,换以”_”

短文件名的特征
1.只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
2.后缀名最长只有3位,多余的被截断。
3.我们可以在启用.net的IIS下暴力列举短文件名,原因是:
访问构造的某个存在的短文件名,会返回404
访问构造的某个不存在的短文件名,会返回400
4.所有小写字母均转换成大写的字母
5.长文件名中包含多个”.”的时候,以文件最后一个”.”作为短文件名的后缀
6.文件名超过9位会产生短文件名,文件名中有特殊符号会产生短文件名,文件后缀超过三位会产生短文件名,文件夹也会有短文件夹名
如果名称超过九个字符的话,所以猜解短文件名时还有一歩,判断是文件还是文件夹

为什么短文件名会成为一个漏洞呢?
由于访问短文件名也可以实现对原文件的访问,而短文件名他的格式又是固定的,所以存在暴力破解的可能性
比如:目标网站下存在文件:backup_www.abc.com_20150101.sql,是一个数据库备份文件。
我想下载目标网站的备份文件来获取敏感信息,于是我对backup为固定,然后对其后面的内容进行暴力破解,在破解到backup~1.sql时文件被下载下来,我也
不知道这个文件是什么,他的全名是什么,但是他一定和备份文件有关,而且我还将其下载下来了,打开一看是数据库备份文件,原来backup~1.sql是
backup_www.abc.com_20150101.sql文件的短文件名

pyload:
http://upload.moonteam.com/*~1*/a.aspx是用于验证的,如果返回404则证明该目录下存在短文件名

就利用通配符和存在返回404,不存在返回400进行逐步猜解


防御:升级.net framework
           修改注册表值,关闭短文件名自动生成(注意一点,关闭之后新文件不会生成短文件名
            但是之前文件的短文件名不会消失)

相关工具:iis_shortname_Scan.py  在github有下载,一键操作,方便快捷
使用例子:python iis_shortname_Scan.py 【url】

漏洞影响范围:
IIS 1.0,Windows NT 3.51  
IIS 3.0,Windows NT 4.0 Service Pack 2  
IIS 4.0,Windows NT 4.0选项包 
IIS 5.0,Windows 2000  
IIS 5.1,Windows XP Professional和Windows XP Media Center Edition  
IIS 6.0,Windows Server 2003和Windows XP Professional x64 Edition  
IIS 7.0,Windows Server 2008和Windows Vista  
IIS 7.5,Windows 7(远程启用<customErrors>或没有web.config)
IIS 7.5,Windows 2008(经典管道模式)
IIS 8.0,Windows 8, Windows Server 2012
IIS 8.5,Windows 8.1,Windows Server 2012 R2
IIS 10.0,Windows 10, Windows Server 2016
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值