Microsoft ha riportato una grave vulnerabilità delle applicazioni ASP.NET (dalla 1.1 alla 4.0).
Questo piccolo bug consente di poter effettuare il download di tutti i file presenti sul server e di effettuarne la decifratura
La soluzione da adottare per eliminare tale problema è la seguente:
1) Impostare nel web.config i customErrors a On
<customErrors mode="On" defaultRedirect="~/errore.aspx" />
2) mettere nella root del website il file errore.aspx, avente nel load il seguente listato:
protected void Page_Load(object sender, EventArgs e) { 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(); } }
protected void Page_Load(object sender, EventArgs e) { 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(); }
}
Per verificare che tutto funzioni correttamente è sufficiente richiamare una pagina web non presente all’interno della nostra solutions.
Per ulteriori informazioni:
http://www.microsoft.com/technet/security/advisory/2416728.mspx
http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx
http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx
Il mio profilo su LINKEDIN http://www.ingegneridelweb.com http://www.ingegneridelweb.com