ASP.NET安全隐患的临时解决方法
2010-09-24 10:24
561 查看
前几天的一个安全会议上公布了一个ASP.NET中的安全隐患(在1.0至4.0的版本中均存在),黑客可以使用这个隐患获取到网站的web.config文件(往往保存了一些敏感信息,如数据库连接字符串等)以及获取ViewState中的加密信息。
园子里对这个安全漏洞有相关的讨论详解ASP.NET的最新安全漏洞,PaddingOracle攻击原理及其他,下面我使用工具演示一下PaddingOracle攻击检查博客园的设置情况:
这说明博客园存在PaddingOracle攻击的漏洞,请博客园团队尽快按照采取行动。
在微软没有推出解决方案之前,基本上可以按照scottgu的文章中给出的临时解决方法进行设置,相信微软将有一个安全修补程序可以部署到解决这个正确,使网站恢复到以前的customErrors设置:
以下内容摘自Scottgu博客的文章:Important:ASP.NETSecurityVulnerability。
如果您使用的是ASP.NET1.0,ASP.NET1.1,ASP.NET2.0,ASP.NET3.5,那么你应该按照以下步骤,启用<customErrors/>和映射所有错误到一个单一的错误页:
1)编辑你的ASP.NET应用程序的根Web.config文件。如果文件不存在,则在应用程序的根目录之一创建一个。
2)创建或修改web.config的配置节<customErrors/>部分,添加以下内容:
3)你再添加一个独立的error.html文件到应用程序,其中包含你选择你喜欢的任何内容包含(适当的错误页)。在Web应用程序中发生错误时使用该文件将显示错误。
注意:要将上面的customErrors设置“on”,而且所有的错误页的默认跳转到默认错误处理的页面。不设置任何每个状态代码定义的错误页面--这意味着<customErrors/>的所有子配置节都删除掉。这样就可以避免攻击者通过不同的状态码判断服务器上的处理结果,并防止信息泄露。
如果您使用的是ASP.NET3.5SP1或ASP.NET4.0,那么你应该按照以下步骤,,启用<customErrors/>和映射所有错误到一个单一的错误页:
1)编辑你的ASP.NET应用程序的根Web.config文件。如果文件不存在,则在应用程序的根目录之一创建一个。
2)Createormodifythe<customErrors/>sectionoftheweb.configfiletohavethebelowsettings.NotetheuseofredirectMode=”ResponseRewrite”with.NET3.5SP1and.NET4.0:2)创建或修改web.config文件的配置节<customErrors/>,添加以下内容:
园子里对这个安全漏洞有相关的讨论
这说明博客园存在PaddingOracle攻击的漏洞,请博客园团队尽快按照采取行动。
在微软没有推出解决方案之前,基本上可以按照scottgu的文章中给出的临时解决方法进行设置,相信微软将有一个安全修补程序可以部署到解决这个正确,使网站恢复到以前的customErrors设置:
以下内容摘自Scottgu博客的文章:
如果您使用的是ASP.NET1.0,ASP.NET1.1,ASP.NET2.0,ASP.NET3.5,那么你应该按照以下步骤,启用<customErrors/>和映射所有错误到一个单一的错误页:
1)编辑你的ASP.NET应用程序的根Web.config文件。如果文件不存在,则在应用程序的根目录之一创建一个。
2)创建或修改web.config的配置节<customErrors/>部分,添加以下内容:
<customErrorsmode="On"defaultRedirect="~/error.html"/>
3)你再添加一个独立的error.html文件到应用程序,其中包含你选择你喜欢的任何内容包含(适当的错误页)。在Web应用程序中发生错误时使用该文件将显示错误。
注意:要将上面的customErrors设置“on”,而且所有的错误页的默认跳转到默认错误处理的页面。不设置任何每个状态代码定义的错误页面--这意味着<customErrors/>的所有子配置节都删除掉。这样就可以避免攻击者通过不同的状态码判断服务器上的处理结果,并防止信息泄露。
如果您使用的是ASP.NET3.5SP1或ASP.NET4.0,那么你应该按照以下步骤,,启用<customErrors/>和映射所有错误到一个单一的错误页:
1)编辑你的ASP.NET应用程序的根Web.config文件。如果文件不存在,则在应用程序的根目录之一创建一个。
2)Createormodifythe<customErrors/>sectionoftheweb.configfiletohavethebelowsettings.NotetheuseofredirectMode=”ResponseRewrite”with.NET3.5SP1and.NET4.0:2)创建或修改web.config文件的配置节<customErrors/>,添加以下内容:
<customErrorsmode="On"defaultRedirect="~/error.aspx"redirectMode="ResponseRewrite"/>
注意要将redirectMode设置为ResponseRewrite.
3)你再添加一个Error.aspx到应用程序,其中包含你选择你喜欢的任何内容包含(适当的错误页)。在Web应用程序中发生错误时使用该文件将显示错误。
<%@PageLanguage="C#"AutoEventWireup="true"%>
<%@ImportNamespace="System.Security.Cryptography"%>
<%@ImportNamespace="System.Threading"%>
<scriptrunat="server">
voidPage_Load(){
byte[]delay=newbyte[1];
RandomNumberGeneratorprng=newRNGCryptoServiceProvider();
prng.GetBytes(delay);
Thread.Sleep((int)delay[0]);
IDisposabledisposable=prngasIDisposable;
if(disposable!=null){disposable.Dispose();}
}
</script>
<html>
<headrunat="server">
<title>Error</title>
</head>
<body>
<div>
Anerroroccurredwhileprocessingyourrequest.
</div>
</body>
</html>
注意:我们强烈建议您阅读Microsoft的顾问http://www.microsoft.com/technet/security/advisory/2416728.mspx,
进一步的细节请阅读Scottgu的博客http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx
和文章中给出的error.aspx页例子。
修改后,要记得重启IIS。
微软发布了ASP.NET重要的安全更新解决 ASP.NETSecurityVulnerability. http://www.cnblogs.com/msdnchina/archive/2010/09/29/1838161.html
相关文章推荐
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法
- ASP.NET安全隐患的临时解决方法