Vulnerabilidad en WordPress SEO by Yoast - Blind SQL

Iniciado por ezephp, Marzo 16, 2015, 11:25:57 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Fue descubierta una vulnerabilidad en el plugin WordPress SEO by Yoast que cuenta con mas de 14 millones de descargas. Según el sitio oficial del plugin, existe una vulnerabilidad de Blind SQL Injection - descubierta por  Ryan Dewhurst - el mismo que desarrolló el scanner de vulnerabilidades de WordPress (WPScan).

La vulnerabilidad afecta a la versión 1.7.3.3 y a todas las anteriores, pero no cualquiera puede explotar esta vulnerabilidad; ya que es necesario tener permisos de administrador, editor o algún tipo de permiso que nos deje acceder al administrador, mas precisamente al archivo "admin/class-bulk-editor-list-table.php" que mediante la url se accede desde "admin.php?page=wpseo_bulk-editor".


Líneas afectadas:

Line 529:

$orderby = ! empty( $_GET['orderby'] ) ? esc_sql( sanitize_text_field( $_GET['orderby'] ) ) : 'post_title';

Line 533:

order = esc_sql( strtoupper( sanitize_text_field( $_GET['order'] ) ) );


Los parámetros GET llamados "orderby" y "order" no estan filtrados correctamente por la función "esc_sql" la cual se usa para justamente filtrar SQL Injection. Por lo tanto se puede explotar, por ejemplo de esta manera (PoC):

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y usando SQLMap:

python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -u "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" --batch --technique=B --dbms=MySQL --cookie="wordpress_9d...; wordpress_logged_in_9dee67...;"


Tal como mencionamos anteriormente, para poder hacer esto necesitamos privilegios pero.. ¿Qué pasaría si intentamos hacer un CSRF (Cross Site Request Forgery) en conjunto con Blind SQL? Por ejemplo, mandarle un link al administrador el cual el contenido del link sea el fallo de Blind SQL y que la consulta ejecute la sentencia para agregar un usuario administrador a la base de datos. De esta manera si logramos engañar al administrador y, si el sistema WordPress no posee un buen filtrado de CSRF, posiblemente tengamos exito y se agregue un usuario a la base de datos que nos permitiría tomar el control del WordPress.


Veamos cuantos sitios hay con este plugin en este momento en google: inurl:"page=wpseo_bulk-editor"




Solución:

Actualizar el plugin No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta