Vulnerabilidades CSRF en aplicaciones web

Desde hace algún tiempo quería explicar el daño e impacto que pueden llegar a causar este tipo de vulnerabilidades -las cuales son generalmente obviadas por muchos de los que desarrollamos aplicaciones Web; pero por el tiempo y otros problemas, lamentablemente no pude hacerlo 🙂

Patxi, ha publicado un extenso artículo sobre este tema: ¿qué es?, ¿cómo funciona?, medidas de protección. Si entre la audiencia existen desarrolladores de aplicaciones Web que no conocen sobre CSRF, recomiendo que le den una lectura al mencionado artículo.

Sistemas de estadísticas Web y datos sobre las búsquedas

Your Traffic stats
Frecuencia con que reviso las estadísticas de acceso a este blog 😀 (Fuente isopixel)

Debido a que estos últimos meses en estuve comentando algunos temas relacionados sobre seguridad, ahora recibo unas cuantas visitas de gente buscando información sobre XSS, Sql Injection, CSRF, etc; entre estas visitas también hay algunos que buscan algunos exploits que siguen unos patrones determinados.

Al igual que un caso anterior, esta vez mientras revisaba las estadísticas de acceso al blog en Reinvigorate, un pequeño mensaje salió a la vista:

XSS Message

Al mirar más detenidamente la fuente de ese mensaje, ví que alguien al parecer estaba buscando(*) erróneamente servidores vulnerables o más información sobre un bug reportado por Stefan Esser en el Mes de los Bugs de PHP.

Es interesante como este tipo de búsquedas pueden ayudar a encontrar bugs de manera imprevista 🙂 .

(*) El texto que buscaban era http://www.google.com.ar/search?q=?a[]=<script>alert(/XSS/);</script>

¿Usas el plugin PopStats?

Actualización: Finalmente Luis Sancho liberó la versión 2.2.1 del plugin PopStats que principalmente corrige un problema de XSS reportado a su autor hace algunos días.

Las cosas que cambian en esta versión:

  • Corrección de vulnerabilidad XSS: problema originado por no realizar filtros adecuados al momento de guardar y mostrar los valores del referer y la dirección IP que envía el cliente.
  • El plugin sólo inserta código JavaScript y CSS en página de administración del plugin.
  • Arreglado problema con el evento "onload" del objeto window, ahora utiliza el modelo de eventos del DOM.
  • Protección contra ataques de tipo CSRF al momento de limpiar las estadísticas (*).

(*) Al enviar esta propuesta, introduje un bug en el plugin que hace que no se puedan limpiar las estadísticas en la rama 2.0 de WordPress, esto fue originado por que la ubicación de la función check_admin_referer cambia entre las versiones 2.0.x (pluggable-functions.php) y 2.1.x (pluggable.php).


Luego de haber estado usando durante un tiempo el plugin PopStats, hoy mientras revisaba las estadísticas del blog, acabo de darme cuenta que es vulnerable a ataques XSS.

Por el momento no daré los detalles de la vulnerabilidad, pero recomiendo que desactiven cuanto antes el mencionado plugin, puesto que estos valores especialmente preparados se pueden persistir en las tablas que usa para almacenar sus datos.

Cross Site Scripting (XSS) en WordPress

Nota: Este post ha sido escrito luego de reportar los fallos al equipo de desarrollo de WordPress.

Hoy acabo de reportar dos fallos de seguridad en WordPress que permiten realizar XSS a sitios que utilizen WordPress como plataforma para sus blogs.

El primer bug, que necesita la intervención de un usuario o administrador del blog, consiste en enviar una URL -especialmente preparada para evadir los filtros- a través del formulario de comentarios.

El segundo bug tiene que ver con los plugins, si bien es cierto que éstos pueden hacer prácticamente cualquier cosa una vez activados, existe la posibilidad de que un plugin -no activado- con una simple modificación de su metadata (nombre, autor, url, etc) pueda insertar HTML o javascript en la página destinada a listar/activar/desactivar los plugins.

El segundo bug, fue corregido en la versión de desarrollo.

Si bien es cierto que estos bugs no son muy graves y dependen más que todo del cuidado que tengamos nosotros, no está de más corregir estos errores en el código de WordPress para evitar problemas posteriores.

Nota 1: Si todavía no han parchado el bug que hace unos días comentaba Armonth, háganlo cuanto antes que ya se liberó un exploit que utiliza CSRF para hacer efectivo el ataque.