IIS短文件名暴利猜解漏洞分析-mark

IIS短文件名暴力猜解漏洞分析

昨天写了个“IIS短文件名暴力猜解漏洞”的利用脚本(比网上传播的那个Java POC能猜解出更多文件和文件夹)。 在此,把漏洞做个简单的分析和总计。

1. 漏洞的成因

为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。

在Windows下查看对应的短文件名,可以使用命令dir /x。

比如,我在D盘下创建了一个名为aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.html文件:

观察命令结果,可以看到,其对应的短文件名 AAAAAA~1.HTM。该短文件名有以下特征:

  1. 只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
  2. 后缀名最长只有3位,多余的被截断。

我们可以在启用.net的IIS下暴力列举短文件名,原因是:

  1. 访问构造的某个存在的短文件名,会返回404
  2. 访问构造的某个不存在的短文件名,会返回400

2. 漏洞的利用

漏洞的利用,需要使用到通配符*。在windows中,*可以匹配n个字符,n可以为0. 判断某站点是否存在IIS短文件名暴力破解,构造payload,分别访问如下两个URL:(转载者备注:此处需要服务器开启.net,且必须使用aspx才可以,asp会一直返回404)

1. http://www.target.com/*~1****/a.aspx

2. http://www.target.com/l1j1e*~1****/a.aspx

iis_shortname_enum_404   404

iis_shortname_enum_400    400

这里我使用了4个星号,主要是为了程序自动化猜解,逐个猜解后缀名中的3个字符,实际上,一个星号与4个星号没有任何区别(上面已经提到,*号可以匹配空)。

如果访问第一个URL,返回404。

而访问第二个URL,返回400。 则目标站点存在漏洞。

判断漏洞存在后,继续猜解目录下是否存在一个a开头的文件或文件夹,访问:

http://www.target.com/a*~1****/a.aspx

如果存在,将返回404。 如此反复,不断向下猜解完所有的6个字符。

猜解完之后,得到的序列应该类似:

http://www.target.com/abcdef*~1****/a.aspx

到了这一步,需要考虑两种情况,如果以abcdef开头的是一个文件夹,则

http://www.target.com/abcdef*~1/a.aspx

将返回404.

如果abcdef开头的是一个文件,则自动提交

http://www.target.com/abcdef*~1*g**/a.aspx

用a-z的26个字母替换上述g的位置,应该能得到多个404页面。(记住一点,404代表的是存在。)如果下面的地址返回404,

http://www.target.com/abcde*~1*g**/a.aspx

则代表扩展名中肯定存在g。

按照上面的思路,继续猜解g后面的字符,直到后缀名中的3个字符都猜解完,就可以了。

以上介绍了怎么手工猜解,这个漏洞的意义何在:

  1. 猜解后台地址
  2. 猜解敏感文件,例如备份的rar、zip、.bak、.SQL文件等。
  3. 在某些情形下,甚至可以通过短文件名web直接下载对应的文件。比如下载备份SQL文件。

3.漏洞的局限性

这个漏洞的局限有几点:

1) 只能猜解前六位,以及扩展名的前3位。

2) 名称较短的文件是没有相应的短文件名的。

3)需要IIS和.net两个条件都满足。

4. 漏洞的修复

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

如果不重新复制,已经存在的短文件名则是不会消失的。

本文参考链接:

http://www.acunetix.com/blog/articles/windows-short-8-3-filenames-web-security-problem/

http://www.freebuf.com/articles/4908.html

http://support2.microsoft.com/kb/121007

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IIS文件名漏洞,也称为8.3文件名漏洞,是指在IIS(Internet Information Services)Web服务器上存在的一个安全漏洞。该漏洞允许攻击者通过构造特定的URL请求来访问Web服务器上本不公开的文件和目录。 要复现IIS文件名漏洞,可以按照以下步骤进行: 1. 首先,确保你有一个运行IIS的Web服务器,并且可以进行配置和测试。 2. 设置IIS服务器,使其启用文件名。可以通过修改IIS配置文件或使用命令行工具进行设置。 3. 创建一个包含敏感信息的文件,例如“secret.txt”,并将其放置在不公开访问的目录下,如“C:\inetpub\wwwroot\secret”。 4. 使用不带扩展名的文件名创建一个符号链接(Symlink),指向要访问的目标文件。例如,可以使用命令“mklink secret.lnk C:\inetpub\wwwroot\secret.txt”。 5. 访问IIS服务器上的网页,并构造一个特定的URL请求来访问该文件。例如,“http://localhost/secret.lnk”。 6. 如果IIS服务器启用了文件名,并且漏洞存在,那么访问该URL后,应该能够直接显示或下载“secret.txt”文件,即使该文件被放置在不公开访问的目录下。 复现IIS文件名漏洞的过程可以帮助管理员更好地理解漏洞的存在和影响,并采取相应的措施来修复该漏洞。修复方法包括禁用IIS文件名功能、更新IIS服务器补丁、限制目录访问权限等,以增强服务器的安全性。同时,定期更新和管理服务器的安全措施也是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值