一起谈.NET技术,ASP.NET 安全漏洞临时解决方案

  在上周五一个安全会议上披露了微软ASP.NET的一个安全漏洞,利用该漏洞攻击者可以请求并下载一些ASP.NET Web.config文件,攻击者可以发送密文并根据默认错误页信息来得到Machine Key。微软目前并没有新的补丁下载,但ScottGu在自己的博客中给出了一个临时解决方案,这里简单翻译一下,大家可做参考。

  在ASP.NET 1.1 到 ASP.NET 3.5中,可以通过在Web.config中创建<customErrors>节点来解决,注意,ErrorMode必须设置为On,且对于所有的错误都转向同一个错误页,主要是防止攻击者根据不同的错误也跳转来猜测服务器发生了什么错误:

<configuration>  <system.web>    <customErrors mode="On" defaultRedirect="~/error.html" />  </system.web></configuration>

  在ASP.NET 3.5 SP1到ASP.NET 4.0中,在Web.config中创建<customErrors>节点,设置ErrorMode为On,设置RedirectMode模式为ResponseRewrite,对于所有的错误跳转到同一个错误页:

<configuration>  <system.web>    <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/error.aspx" />  </system.web></configuration>

  并且ScottGu还建议在错误页的Page_Load()事件中加上如下代码:

<%@ Page Language="C#" AutoEventWireup="true" %><%@ Import Namespace="System.Security.Cryptography" %><%@ Import Namespace="System.Threading" %><script runat="server">  void Page_Load(){byte[] delay = new byte[1];RandomNumberGenerator prng = new RNGCryptoServiceProvider();

prng.GetBytes(delay);
Thread.Sleep((int)delay[0]);

IDisposable disposable = prng as IDisposable;
if (disposable != null){ disposable.Dispose(); }
}
</script>

<html>
<head id="Head1" runat="server">
<title>Error</title>
</head>
<body>
<div>
An error occurred while processing your request.
</div>
</body>
</html>

  另外ScottGu也提供了一个vbs脚本,可以用来测试服务器上ASP.NET 应用程序的<customErrors>节点配置,大家可以到这里下载。

  参考信息:

  1. Important: ASP.NET Security Vulnerability
  2. Microsoft Security Advisory 2416728
  3. Understanding the ASP.NET Vulnerability

  4. Microsoft Security Response Center Blog Post

时间: 2025-01-27 09:36:10

一起谈.NET技术,ASP.NET 安全漏洞临时解决方案的相关文章

ASP.NET 安全漏洞临时解决方案

在上周五一个安全会议上披露了微软ASP.NET的一个安全漏洞,利用该漏洞攻击者可以请求并下载一些ASP.NET Web.config文件,攻击者可以发送密文并根据默认错误页信息来得到Machine Key.微软目前并没有新的补丁下载,但ScottGu在自己的博客中给出了一个临时解决方案,这里简单翻译一下,大家可做参考. 在ASP.NET 1.1 到 ASP.NET 3.5中,可以通过在Web.config中创建<customErrors>节点来解决,注意,ErrorMode必须设置为On,且对

IIS的ASP目录漏洞和IIS分号漏洞(;)临时解决方案

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 先说解决方法:下载 银月服务器工具,使用工具->组件下载器下载ISAPI_Rewrite,解压出来. 把ISAPI_Rewrite中的ISAPI_Rewrite.dll添加为ISAPI,名字为ISAPI_Rewrite,这就是伪静态,做过的不用安装了. 下载漏洞补丁包,即下图选择的项目,下载打开! 把ISAPI_Rewrite目录中的h

一起谈.NET技术,ASP.NET配置错误页面浅析

ASP.NET配置错误页面在网站的运行过程中可能会面临很多问题,例如服务器出错,用户请求的页面不存在,程序配置错误等等一系列的问题.在用户请求浏览网页碰到这些的时候会出现一些系统默认的错误页面,这样对于用户很不友好,同时对于搜索引擎来所更是不友好 . 这里我们认识一些SEO时常见的Http状态码: ◆404:服务器找不到指定的资源,请求的网页不存在(譬如浏览器请求的网页被删除或者移位,但不排除日后该链接有效的可能性); ◆410:请求的网页不存在(注意:410表示永久性,而404表示临时性);

一起谈.NET技术,细数ASP.NET MVC框架的7大顶级功能

ASP.NET MVC框架对构建ASP.NET应用程序的开发人员来说的确很有吸引力,因为它的松耦合特征使项目管理变得更加轻松,ASP.NET MVC最初由微软随.NET framework 3.5 SP1一起引入(即ASP.NET MVC 1.0),现在.NET Framework 4.0和Visual Studio 2010默认支持第二个版本,即ASP.NET MVC 2.0,在这篇文章中,我将带你领略一下ASP.NET MVC框架的7个顶级功能. 所有概念都围绕下面三个主要组件展开: · 模

卡巴斯基发现网页技术中的危险漏洞

卡巴斯基实验室在Silverlight(一种用于显示多媒体内容的网页技术)中发现一种零日漏洞.这种漏洞允许攻击者完全访问受感染的计算机,并且可以执行恶意代码,窃取用户机密信息,还能够执行其它非法操作. 2015年夏,一篇关于Hacking Team公司(一家知名的"合法间谍软件"开发商)遭遇黑客攻击的报道登上各个媒体.其中一篇发表在Ars Technica上的文章提到了Hacking Team代表和VitaliyToropov(一名独立漏洞程序编写者)之间的通信被泄露.除此之外,这篇文

《创业家》牛文文:少谈点模式多谈点技术

"模式"如同当年的"主义",流行于各种创业大赛.创业励志节目.论坛的"街头"式秀场 文/创业家 牛文文 "美国某某公司你知道吧?就是刚被戴尔.惠普.思科十几亿美元抢购的那家.我们的模式和它的一样,现在还没赢利,可将来起码有十几亿人民币的市值." "我开了小煤矿,但煤运不出去,上商学院之后受到启发,想搞模式创新,具体讲就是想在铁路边上搞个煤炭物流开发区,建一个大的物流和信息流平台,把分散的煤炭集中在我这个园区,这样和铁

浅谈虚拟化技术下的云安全

近年来,云计算是目前非常热门的一个研究领域,其实它并不是一种全新的技术,而是许多技术的融合体,包括分布式计算.动态和拓展等各种各样的技术算法,而虚拟化是云计算里最重要的一个技术. 云安全问题是云计算技术进一步发展并得到广泛应用的一个核心且富有挑战的重要问题,通过网状的大量客户端对网络中软件行为的异常监测来获取互联网中木马.恶意程序的最新信息,推送到云服务器端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端.它采用的是云计算处理机制,能够计算出Internet上的网络威胁位置,在网络

FCKEditor曝高危漏洞 360首发临时解决方案

中介交易 SEO诊断 淘宝客 云主机 技术大厅 近日,国外漏洞平台exploit-db曝光FCKEditor 最新版(2.6.8 Asp版)存在任意文件上传高危漏洞 近日,国外漏洞平台exploit-db曝光FCKEditor 最新版(2.6.8 Asp版)存在任意文件上传高危漏洞(漏洞详情:http://www.exploit-db.com/exploits/23005/ ),黑客借助该漏洞能够直接上传木马.后门程序并控制服务器,最终造成网站数据被窃等严重后果.360网站安全检测发现,国内大量

javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案

asp.net|javascript|js|过程|解决 javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案  +++++++++++++++++第一种情况: 1.后台方法: protected string CsharpVoid(string strCC){  return strCC; } 2.javascript 调用<script  language="javascript">   var s = "<%=Csharp