修复 IIS 波浪号漏洞

修复 IIS 波浪号漏洞

我们的一台 IIS 服务器(IIS 7.5,Server 2008 R2)显然存在“漏洞”,tilde 短文件名披露问题。

然而,我很难真正解决这个问题。到目前为止,我已经

  • 禁用 8.3 文件名,停止 Web 服务器,重新创建站点目录并重新启动服务

  • 添加了 URL 中波浪符号的过滤规则:

在此处输入图片描述

  • 添加了用于任意位置波浪符号的过滤规则:

在此处输入图片描述

  • IISRESET一些时间

  • 检查是否web.config已添加相关过滤规则

..但我还是无法让我的网站通过测试

java -jar ~/temp/IIS-ShortName-Scanner-master/IIS_shortname_scanner.jar http://www.example.com

[...SNIP...]

Testing request method: "TRACE" with magic part: "/webresource.axd" ...
Testing request method: "DEBUG" with magic part: "" ...
Testing request method: "OPTIONS" with magic part: "" ...
Testing request method: "GET" with magic part: "" ...
Reliable request method was found = GET
Reliable magic part was found = 
144 requests have been sent to the server:

<<< The target website is vulnerable! >>>

我还需要做什么才能解决这个问题?

编辑:这里DIR /x似乎没有显示 8.3 文件名:

在此处输入图片描述

这是该网站的应用程序池(服务器上的所有其他网站都相同):

在此处输入图片描述

编辑2:验证没有剩余的 8.3 文件名:

在此处输入图片描述

答案1

尝试使用以下命令扫描现有的短文件名fsutil

  • fsutil 8dot3name scan /s /v E:\inetpub\wwwroot

如果发现,则将其剥离:

  • fsutil 8dot3name strip /s /v E:\inetpub\wwwroot

另外,查看了带有空魔法部分 ( magic part: "") 的日志,我想知道这是否是 POC 中的一个错误。配置.xml看起来后面有多余的逗号/webresource.axd

<entry> key="magicFinalPartList">
 <![CDATA[\a.aspx,\a.asp,/a.aspx,/a.asp,/a.shtml,/a.asmx‌​,/a.ashx,/a.config,/a.php,/a.jpg,/webresource.axd,,/a.xxx]]>
</entry>

我已经通过 Twitter 向开发人员询问了这个问题,他回复道:

极少数情况下不需要扩展。但是,最近这只造成了更多问题!我现在就把它删除。

我将其从配置文件中删除。这是第二次投诉,因此现在是进行此更改的正确时机。

所以,看来你现在很安全了:)

答案2

另外“注意:对 NtfsDisable8dot3NameCreation 注册表项的更改仅影响更改后创建的文件、文件夹和配置文件。已存在的文件不受影响。”

注意:虽然禁用 8.3 文件名创建可以提高 Windows 下的文件性能,但某些应用程序(16 位、32 位或 64 位)可能无法找到具有长文件名的文件和目录。

答案3

不幸的是,真正解决这个问题的唯一方法是一组烦人的旋转,取决于您的 Windows 版本,禁用生成 8.3 名称的能力。

对于您的 Windows 版本:

要在所有 NTFS 分区上禁用 8.3 名称创建,请在提升的命令提示符下键入 fsutil.exe behavior set disable8dot3 1,然后按 Enter。

来源: http://support.microsoft.com/kb/121007

答案4

最好的解决方案如下,因为我们无法在每次新部署后剥离。

使用以下链接测试/扫描网站是否存在漏洞(安装 java 并运行命令进行测试/扫描)。

扫描站点的命令:

java -jar iis_shortname_scanner.jar 2 20 https://example.com/

扫描现有的短文件名:

fsutil 8dot3name scan /s /v c:\inetpub\wwwroot

检查 8dot3 名称创建是否已禁用或启用:

fsutil 8dot3name query C:\Release\SiteRootDocumentPath

如果启用了 8dot3 名称创建,请使用以下命令来禁用:

fsutil 8dot3name set C:\Release\SiteRootDocumentPath 1

8dot3name 属性设置为对指定卷启用 8dot3 名称创建 (0) 或设置为对指定卷禁用 8dot3 名称创建 (1)

即使您在站点物理(SiteRootDocument)路径中重新部署代码,它也不会创建具有短名称的文件。

扫描将会通过:)

相关内容