这是我们在我们的一个网站上遇到的问题:
使用 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)