Reciente vulnerabilidad de ASP.NET y BlogEngine.Net

Vamos a listar las noticias en orden cronológico, para intentar entender la vulnerabilidad:

Y así estamos…

Si no quieren leer todos los enlaces, el resumen de David Salgado sobre la vulnerabilidad:

En resumen… explota una vulnerabilidad relacionada con el algoritmo de cifrado que se utiliza en la autenticación por Forms. Va probando diferentes entradas y detectando la diferencia de respuesta de la aplicación para aprender y finalmente dar con una clave que da acceso.

Y si no queda claro aún, puede ver el video con la demo completa. Y la solución que se tiene ahora, pasa por evitar “responder” a los intentos de usar esta vulnerabilidad. ¿Cómo?. Evitar que los atacantes obtengan información usando los errores personalizados de ASP.NET (customErrors element, web.config).

 

La vulnerabilidad y BlogEngine:

No hay una respuesta oficial de BlogEngine, pero podemos hacer lo siguiente (para dormir tranquilos) hasta tener alguna respuesta oficial. Referencia: The Asp.Net Vulnerability and DotNetBlogEngine.Net.

1. Cambiar el elemento customErrors en el archivo web.config:

   1: <customErrors mode="RemoteOnly" defaultRedirect="~/error404.aspx" />
   2:    <error statusCode="404" redirect="error404.aspx" />
   3: </customErrors>

Por el siguiente:

   1: <customErrors mode="On" redirectMode="ResponseRewrite" 
   2:      defaultRedirect="~/fail.aspx" />

2. Crear la siguiente página ASPX, y subirla a la carpeta root de BlogEngine:

   1: <%@ Page Language="C#" AutoEventWireup="true" %>
   2: <%@ Import Namespace="System.Security.Cryptography" %>
   3: <%@ Import Namespace="System.Threading" %>
   4:  
   5: <script runat="server">
   6:    void Page_Load() {
   7:       byte[] delay = new byte[1];
   8:       RandomNumberGenerator prng = new RNGCryptoServiceProvider();
   9:  
  10:       prng.GetBytes(delay);
  11:       Thread.Sleep((int)delay[0]);
  12:         
  13:       IDisposable disposable = prng as IDisposable;
  14:       if (disposable != null) { disposable.Dispose(); }
  15:     }
  16:   < /script>
  17: <html>
  18: <head runat="server">
  19:     <title>Error</title>
  20: </head>
  21: <body>
  22:     <div>
  23:         An error occurred while processing your request.
  24:     </div>
  25: </body>
  26: </html>

A estar pendientes en estos días, para ver que pasa con esta vulnerabilidad.

 

Saludos,

Published 21/9/2010 14:26 por Sergio Tarrillo
Archivado en: ,
Comparte este post:
http://geeks.ms/blogs/sergiotarrillo/archive/2010/09/21/reciente-vulnerabilidad-de-asp-net-y-blogengine-net.aspx

Comentarios

# [ASP.NET] Vulnerabilidad de Seguridad (Todas las versiones)

[Actualización 24/09/2010] Se actualizo la solución provisoria en el aviso de seguridad Microsoft Security

Saturday, September 25, 2010 3:25 PM por Jose A. Fernandez

# re: Reciente vulnerabilidad de ASP.NET y BlogEngine.Net

Buenas, gracias por la info.

Tenes idea si usando forms authentication mediante cookies me afecta tambien esta vulnerabilidad?

Thursday, January 13, 2011 6:22 PM por julian