Agujero de seguridad en WordPress (por segunda vez)

Bueno, después del primer agujero de seguridad que encontré y explique en mi blog, que afectaba a wordpress, he estado bastante tiempo sin escribir en el blog, y que mejor manera que volver a retomar el blog, que con el mismo tema que lo dejé: seguridad y wordpress.

Hace unos días encontré un problema que afecta a todas las versiones de wordpress, y que puede ser explotado de forma bastante sencilla, sin embargo, requiere un poco de interacción con el administrador del blog, para que caiga en nuestra pequeña trampa.

Insisto en que no se trata de un engaño ni de que el administrador nos de su contraseña ni nada rastrero, es un agujero de seguridad real, como ahora explicaré.

El problema empieza en el fichero press-this.php, dentro de wp-admin:

http://www.ejemplo.com/wordpress/wp-admin/press-this.php?t=Hacked%20by%20me&s=a%20pro%20hacker%20hacked%20this%20blog

Si el administrador del sitio visitase esta url (ya veremos como), le sale un editor para crear una nueva entrada en el blog, y además, rellenado ya con un título para la entrada y un cuerpo para la entrada, que podemos rellenar utilizando esas dos variables que van por GET.

Esto es un pequeño CSRF que nos permite rellenar el formulario sin que el usuario toque nada.

El problema está en que aunque montemos una web, tipo www.webmuymuymala.com y dentro metamos un iframe que apunte a esa url, y mandando un correo, hagamos que el dueño del blog entre a www.webmuymuymala.com, aun y así, no pasará nada, por que aunque el contenido del nuevo post se autorellena, falta pulsar el botón publicar, cosa que el administrador no hará.

Llegados a este punto, podemos tirar de otra técnica explicada aquí en este mismo blog, llamada clickjacking,  para insertar un iframe apuntando a esa URL, bajarle la opacidad a 0, de forma que no se ve nada, y justo debajo del botón publicar, poner un botón que ponga: entrar en mi página!, que aparezca al entrar en www.webmuymuymala.com.

Ahora solo tenemos que convencer al administrador del blog para que entre en nuestra web, el verá una portada y un botón normal y corriente para entrar en la web, y cuando clique, estará clicando en un iframe transparente que tiene encima, concretamente, en el botón publicar del post pre-rellenado.

Lo voy a ilustrar con un par de imagenes, para que se entienda mas fácil:

Página web normal y corriente, con un iframe dentro, que apunta a lo explicado arriba

Ahora reducimos un poco la opacidad del iframe, para que se vea lo que hay debajo:

y finalmente reducimos la opacidad a 0, ¿alguien se daría cuenta del engaño? Es imposible, sin tener instalada alguna extensión como noscript.

Como veis, es totalmente imposible saber que hay un iframe transparente encima de ese botón enter.

Cuando el administrador pulse en el botón Enter, estará picando en publicar y agregará una nueva entrada a la portada de su blog, sin llegar a ver nada.

Para evitar este tipo de problemas, las páginas importantes como facebook o twitter impiden cargar ciertas áreas dentro de un iframe, he contactado con wordpress y les he recomendado que la administración no se pueda cargar en un iframe, han abierto un ticket aquí:

http://core.trac.wordpress.org/ticket/12293

Y están debatiendo que hacer. En wordpress.com, el servicio público que ofrecen ya está parcheado. Para variar, y debido a mi MUY mala relación con wordpress, han vuelto a no darme crédito por el aviso ni por nada (es lo que tiene llevarse mal, muy mal), aunque he querido arreglar un poco las cosas y no he publicado hasta que Ryan Boren, de wordpress me ha dado el visto bueno.

14 Respuestas a “Agujero de seguridad en WordPress (por segunda vez)”


  • Chapeau, eres un máquina con cada post que escribes! :)

  • muy buen post, felicidades

  • Muy buen post amigo, gracias por compartirlo.

  • Supuestamente se solucionaba con la 2.9.2?
    ¿si somos editores únicos no debería de haber problema no?

  • Lo que yo no se es como a estas alturas la gente sigue usando wordpress. Un sistema inestable, con multitud de fallos.. y MAL programado.
    Que tiene muchos plugins?
    que “mola” mucho?
    POr favor.. la mayoria de la gente usa solo el 5 o 10% de sus caracteristicas.. y es un verdadero dolor de cabeza para cualquiera que lo tenga que administrar en un hosting.

    YO ODIO wordpress, hay otras muchas alternativas.. no se como os empeñais en seguir usando aquello que es malo malo

  • parece mentira, propón algunos. me encantaría saber cuales usas como alternativas.

  • Me parece muy interesante tu tematica, otro follower que se anota por aqui, saludos. :-)

  • parece mentira, estoy totalmente con jaime, tan listo… propón alternativas!

  • Talvez Wordpress tenga fallos de seguridad… pero ninguna aplicación es 100% segura.
    Ademas la comunidad que colabora con la continua mejora, desarrollo y evolución de este poderoso CMS es mucha, lo que ayuda ha que valla creciendo rapidamente corrigiendo sus problemas, lo que lo ha llevado a ser considerado uno de los Gestores de contenido mas usados de la web.
    Personalmente lo uso, y con respecto a lo que dicen halla arriba de “es un verdadero dolor de cabeza para cualquiera que lo tenga que administrar en un hosting.”… pues personalmente lo uso en mi sitio web y su administración es muy sencilla. asi que pues bueno…

    Aunque para los que quieran usar otros CMS pues no hay problema.
    Pueden optar por Joomla, o Drupal tambien que es muy bueno, ya cada cual.

  • ¿Que les pasa a esta gente de Wordpress contigo? por cierto sobre tu exploit (el del post anterior) funciona, perooo…funciona en determinados servidores. Sigue así, tu blog es muy didáctico. Saludos.

  • Muy wapa la tecnica.
    Me recuerda a los ataques de phishing, muy currada.

  • Hola amigo
    estoy desesperada! estoy siendo acosada e insultada por un anonimo usuario de WP y no se como saber su mail por lo menos para mandarle un par de insultos y decirle que si no me deja en paz le iniciaré acciones legales. Como se puede saber?
    Mi correo es Susanatoto16@hotmail.com
    repito que estoy desesperada.
    susi

  • Hola, he llegado a tu Blog buscando ayuda en google, te he dejado un mensaje en tu Blog antiguo, pero lei que cambiaste a este y pasaré a dejarlo por aqui tambien, es que necesito ayuda :(

    Este es el mensaje que te deje:

    Hola, he creado una web con un tema de WordPress, sinceramente no tengo ni idea de nada de esto, he comenzado anoche, ahora iba a instalar un pluging de la pagina de wordpress y me da este error:

    Fatal error : no se puede redeclare _iscurlinstalled () (declarados anteriormente en / home2/stefanj5/public_html/wp-content/plugins/jr-sms/jr-sms.php: 40) en / home2/stefanj5/public_html/wp-content/themes / bueno / funciones / admin-functions.php on line1039

    Y no veo la web, no se como recuperar nada de nada

    El unico post que encuentro que se ve que es de alguien que sabe es el tuyo, si sabes como solucionarlo y me quieres explicar, por favor, contacta conmigo stefania_scitti_stardoll@hotmail.com

    Gracias, espero tu respuesta
    Saludos

  • gracias por el informe me sirvio mucho y vale la pena saber estas cosas

Añade un Comentario