漏洞笔记 | IIS短文件名泄露

0x00 概述

漏洞名称:IIS短文件名泄露

风险等级:低

问题类型:信息泄露

0x01 漏洞描述

此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(〜)波浪号引起的。

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

Microsoft IIS 波浪号造成的信息泄露是世界网络范围内最常见的中等风险漏洞。这个问题至少从1990年开始就已经存在,但是已经证明难以发现,难以解决或容易被完全忽略。

受影响的版本: 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(远程启用或没有web.config) IIS 7.5,Windows 2008(经典管道模式) 注意:IIS使用.Net Framework 4时不受影响

漏洞的局限性: 1) 只能猜解前六位,以及扩展名的前3位。 2) 名称较短的文件是没有相应的短文件名的。 3)需要IIS和.net两个条件都满足。

0x02 漏洞危害

主要危害:利用“~”字符猜解暴露短文件/文件夹名

由于短文件名的长度固定(xxxxxx~xxxx),因此黑客可直接对短文件名进行暴力破解 ,从而访问对应的文件。

举个例子,有一个数据库备份文件 backup_www.abc.com_20150101.sql ,它对应的短文件名是 backup~1.sql 。因此黑客只要暴力破解出backup~1.sql即可下载该文件,而无需破解完整的文件名。

次要危害:.Net Framework的拒绝服务攻击

攻击者如果在文件夹名称中发送一个不合法的.Net文件请求,.NeFramework将递归搜索所有的根目录,消耗网站资源进而导致DOS问题。

0x03 修复建议

1、CMD关闭NTFS 8.3文件格式的支持

2、修改注册表禁用短文件名功能

3、关闭Web服务扩展- ASP.NET

4、升级netFramework至4.0以上版本

原文地址:https://www.teamssix.com/year/191126-215804.html 参考文章: https://www.freebuf.com/articles/web/172561.html https://segmentfault.com/a/1190000006225568

本文分享自微信公众号 - TeamsSix(OldCat0111)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏雪雁的专栏

.NET手撸绘制TypeScript类图——上篇

近年来随着交互界面的精细化, TypeScript越来越流行,前端的设计也越来复杂,而 类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式。许多工...

5830
来自专栏汪宇杰博客

.NET Core 如何生成真正的ICO图标

前一阵我终于完成了博客系统动态生成favicon的功能。众所周知,favicon肯定有一个ico格式的图标,其余可以用 png + manifest 的方式输出...

8830
来自专栏Bypass

Window权限维持(五):屏幕保护程序

屏幕保护是Windows功能的一部分,使用户可以在一段时间不活动后放置屏幕消息或图形动画。众所周知,Windows的此功能被威胁参与者滥用为持久性方法。这是因为...

7310
来自专栏magicodes

Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装

Magicodes.Pay,是心莱科技团队提供的统一支付库,相关库均使用.NET标准库编写,支持.NET Framework以及.NET Core。目前已提供A...

7940
来自专栏晓晨的专栏

.NET Core 使用HMAC算法

通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_md5对比计算md5...

4620
来自专栏CRM日记本

Salesforce发布了CMS产品,逻辑是什么?

最近Salesforce宣布发布了自己的CMS产品,这似乎又超出了我们的想象范围,CMS传统上来说用于网站建设的,为什么一个CRM厂商需要CMS产品,这里面的逻...

9920
来自专栏me的随笔

Python中的passed by assignment与.NET中的passing by reference、passing by value

Remember that arguments are passed by assignment in Python. Since assignment jus...

7620
来自专栏前端资源

常用软件的静默安装参数,双击自动安装

1. 软件如果已经安装,到注册表中查询其安装/卸载参数,看 InstallSource(如果有)和 UninstallString 的参数内容信息。

11220
来自专栏无道编程

VSCode使用记录分享【PHP为例】

并且会在此提醒你安装一些插件,能出现在这里的插件,说明肯定是微软官方比较认可的插件,质量自然不必多说。

7100
来自专栏镁客网

全球开发者福利,GitHub终于出App了

今天,在全球开发者大会上,按照惯常,为了让开发者更轻松地写代码,GitHub发布了诸多重大更新,其中包括GitHub Actions正式应用、新功能GitHub...

11310

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励