3

这是我们在我们的一个网站上遇到的问题:

使用 Windows 文件系统速记字符和状态返回代码的文件/目录名称暴力破解

It is possible to find an unknown filename up to six characters by using shorthand file characters such as ~1 and
    *Example: site.com/admin/uplo*~1*/.aspx
This attack relies on reading different error codes the webserver responds with when the file(s) exist or not. Let’s say the file upload.aspx exists in the directory admin. Our attacks responses would look like this:
    site.com/admin/uplo*~1*/.aspx – IIS returns HTTP 404 File Not Found (valid file)
    site.com/admin/uplp*~1*/.aspx – IIS returns HTTP 400 Bad Request (invalid file)
        *Note that IIS 7.x responds with different error codes (0×0 when valid) instead of http status codes

更多详情 http://www.alertlogic.com/internet-information-server-iis-exploitation-2/

一种可能的解决方案: ...如果可能,您可能希望考虑使用 URL 重写来不允许接受任何带有波浪字符的 URL ...

问题: 如何做到这一点?为了丢弃网站上所有 URL 中的 ~ 字符,应该在 url 重写规则中使用什么正则表达式(ASP.NET 3.5)

4

2 回答 2

8

可以通过执行以下任一操作来修复它:

1. Install .NET 4.0 on the web server. 

或者

2. Install and configure IIS URLScan module (do not allow ~ chars in the URL by adding ~ to [DenyUrlSequences] section).

在这里找到更多有用的信息: http ://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx

于 2012-08-27T15:07:12.923 回答
1

需要在 IIS 上禁用 8.3 文件名生成。简单的注册表更改,但您需要复制所有受影响的目录,因此需要停止 IIS。

如何在 NTFS 分区上禁用 8.3 文件名创建

NtfsDisable8dot3NameCreation

于 2014-10-07T08:48:09.487 回答