Gravatar de Armonth

Presunto fallo de WordPress permite insertar código

Muchos usuarios de WordPress (2.3.1 incluida) se están encontrando con comentarios y entradas que tienen iframes insertados.

Lo comenta Andrés Nieto y el ticket correspondiente es el 5313.

Normalmente en los comentarios no se pueden insertar iframes y en las entradas para hacerlo hay que tener permisos (concretamente el unfiltered_html). Pero sin embargo muchos usuarios se están encontrando spam y otras cosas en forma de iframes. Todavía no se sabe la causa: ni siquiera si es un bug de WordPress que permite insertarlo o si se ha robado la contraseña de administrador de los blogs afectados y con ella se ha hecho el desaguisado.

Por lo tanto lo poco que se puede hacer es revisar que no haya entradas/comentarios con iframes, hacer copias de seguridad y restringir con mod_security.

Para lo primero, Andrés ya nos da una manera: consultas SQL;

// Para los comentarios:
SELECT *  FROM 'wp_comments' WHERE 'comment_content' LIKE  '%<iframe%';

// Para las entradas:
SELECT *  FROM 'wp_posts' WHERE 'post_content' LIKE  '%<iframe%';

Para estar “limpios” ambas sentencias no deberían devolver resultados a no ser que hayamos insertado manualmente un iframe nosotros por algún otro motivo.

El uso de mod_security escapa un poco a mis conocimientos pero en gotroot hay un script que impide la carga de iframes, el problema es que habría que adaptarlo para permitir Google Adsense u otros sistemas que usamos y usan iframes.

También podemos de forma temporalmente añadir una contraseña extra vía htaccess / htpasswd para que en caso de que finalmente sea mediante vulnerabilidad y posterior robo de contraseñas, lo tengan un poco más difícil.

5 Comentarios (feed)

  1. Gravatar de Sergio Sergio nos comenta:

    lo revise y lo tengo corregido, el spam karma lo hace solo! no me lo creo!, saludos armonth!

    Miércoles, 7 de Noviembre/2007 @ 17:11

  2. Gravatar de filex filex nos comenta:

    Sobre mod security esto encontré ( http://blogsecurity.net/projects/wordpress-modsecurity-paper.pdf )

    Miércoles, 7 de Noviembre/2007 @ 19:58

  3. Gravatar de g30rg3_x g30rg3_x nos comenta:

    Como puse en la web de fermuned (que por moderacion aun no se publica)

    —–
    Hola fermuned,

    Gracias por el aviso del fallo, ahora (al igual que de seguro el buen alex) estaremos buscando posibles causas, repercusiones y claro la solución.

    Sin embargo creo tener el problema o la posible fuga de donde venga…

    He revisado el post y he seguido a todos los usuarios que han reportado ataques a su web (incluida la tuya) y todas tienen un mismo factor:
    -> Registro de Usuarios (subscriptores).

    No he visto ningún reporte que me indique lo contrario, así que de seguro este es un problema relacionado con usuarios registrados como subscriptores y no con usuarios normales (o visitantes).
    así que de seguro checando por tu lista de subscriptores encontraras algun ser extraño que se ha colado (registrado) y con ese privilegio (minimo) ha logrado postear el iframe…

    Tocara investigar mas y claro hacer el parche (si es que lo amerita) asi que por el momento todo me indica hacia ese lado que ya mencione..
    —-

    Saludos armonth

    Miércoles, 7 de Noviembre/2007 @ 21:38

  4. Gravatar de g30rg3_x g30rg3_x nos comenta:

    Por cierto hoy que me fijo tu SQL no deberia ser:

    SELECT * FROM ‘wp_posts’ WHERE ‘post_content’ LIKE ‘%<iframe%’ OR ‘post_title’ LIKE ‘%<iframe%’

    Viernes, 9 de Noviembre/2007 @ 21:34

  5. Gravatar de Armonth Armonth nos comenta:

    g30rg3_x pues ahora que lo dices, ya me pareció que sí que era ‘post_content’ en lugar de ‘post_title’ pero como el SQL es de Andrés me pareció raro que tuviera ése lapsus…

    PD: te he corregido la entrada y el comentario mientras tú mismo enviabas tu fe de erratas, bonita sincronización :-)

    Viernes, 9 de Noviembre/2007 @ 21:38

Comentarios cerrados