Vulnerabilidad WordPress 4.2 XSS Almacenados (Stored XSS)

Vulnerabilidad WordPress 4.2 XSS Almacenados (Stored XSS)

Las versiones actuales de WordPress son vulnerables a XSS almacenados. Un atacante no autenticado puede inyectar JavaScript en los comentarios de WordPress. El script se dispara cuando el comentario sea visto.

Si el comentario es disparado por un administrador que está firmado, en una configuración estándar el atacante puede aprovechar la vulnerabilidad para ejecutar código arbitrario en el servidor vía el plugin o tema.

Alternativamente, el atacante puede cambiar el password del administrador, crear nuevas cuentas de administración o hacer cualquier actividad que un administrador puede realizar dentro del sitio.

Detalle

Si el texto del comentario es muy largo, será truncado cuando se inserte en la base de datos. El tipo de datos TEXT de MySQL tiene un límite de 64 kilobytes, por lo que el comentario debe ser muy largo.

El resultado truncado da como resultado texto HTML malformado en la página. El atacante puede suministrar cualquier atribudo en las etiquetas permitidas de HTML, de la misma manera que las dos vulnerabilidades de XSS publicadas recientemente afectando el código central de WordPress.

Esta vulnerabilidad tiene similitud a la reportada por Cedric Van Bockhaven en 2014 (y parchada esta semana, después de 14 meses). En lugar de utilizar un caracter inválido para truncar el comentario, esta vez un comentario excesivamente largo se utiliza para lograr el mismo efecto.

En ambos casos, el JavaScript inyectado aparentemente no puede ser disparado desde el Escritorio del Administrador, por lo que estos requieren entrar por un comentario moderado, por ejemplo, postear un comentario sin problema primero.

Prueba de concepto

Coloca como texto de comentario lo siguiente:

<a title=’x onmouseover=alert(unescape(/hello%20world/.source)) style=position:absolute;left:0;top:0;width:5000px;height:5000px  AAAAAAAAAAAA…[64 kb]..AAA’></a>

Vulnerabilidad confirmada: WordPress 4.2, 4.1.2, 4.1.1, 3.9.3. Probada con MySQL versiones 5.1.53 y 5.5.41.

Demo


Fuente: [http://klikki.fi/adv/wordpress2.html]