SQL Injection Tool

Iniciado por [Zero], 7 Diciembre 2008, 23:00 PM

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

[Zero]

Si eso también me di cuenta, una solución sería guardar los logs en un txt, así no tendría que sacar los datos de cada vez, además de que los datos que saquemos nos quedarán comodamente guardados en el archivo de texto, ya que en esta versión no se pueden copiar directamente los datos del listview al portapapeles. Para la próxima versión lo haré en ANSI C++ o en JAVA para que sea multiplataforma rápido y que no se peta la interfaz. Añadiré más algoritmos para sacar la inyeccion de forma que si no sale con uno intente con otros, de ésta forma será efectivo en más casos. También añadiré que en caso de que la inyección no se pueda completar hasta el final, nos dé los máximos datos posibles para intentarlo nosotros manualmente.

La opción "estrella" que tengo pensado en la 1.0 es la busqueda de páginas vulnerables. Será un proceso totalmente gráfico, buscará páginas en google usando dorks que el usuario introducirá, éstas se cargarán al listiview y clicando sobre ellas nos dirá si es vulnerable o no (mejor dicho, si puede ser vulnerable o no, jeje). En caso afirmativo sacará las tablas columnas y datos.

Si a alguien se le ocurre alguna otra opción que pueda añadir que lo comente, sería de gran ayuda, quiero que éste programa sea un proceso continuo que mejore versión a versión hasta que consiga agilizarnos mucho el trabajo.

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

OzX

felicidades bro, la idea esta genil. bastante util¡.
a mi me pasaba lo mismoo en C#, que cuando obtenia datos de source de web no habia q tocar nada.
talves hay que ocupar hilos para que se separe el proceso. para k no pete cuando se toca el form.

Pero en general clap clap bro¡

Dacan

Cual es el codigo que pones en el ejemplo es que hice este para probar el programa y me dice que no es vulnerable quiero saber que fue lo que tu pusiste:
<?
$id = $_GET['id'];
$conexion = mysql_connect("-------", "-----------", "-----------");
mysql_select_db("-----------", $conexion);
$con = mysql_query("SELECT * FROM Usuarios WHERE id=$id") or die (mysql_error());
while ($rw = mysql_fetch_assoc($con)) {
echo "Usuario:".$rw[usuarios]."<br>"."Rango:".$rw[rango]."<br>";
}
?>


Saludos, Dacan  :D


:ohk<any>

Gracias por el aporte man  ;)

Esto me ayudara a no perder mucho tiempo sacando tablas  :P

Un saludo
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

[Zero]

#14
Cita de: Dacan en 11 Diciembre 2008, 00:21 AM
Cual es el codigo que pones en el ejemplo es que hice este para probar el programa y me dice que no es vulnerable quiero saber que fue lo que tu pusiste:
<?
$id = $_GET['id'];
$conexion = mysql_connect("-------", "-----------", "-----------");
mysql_select_db("-----------", $conexion);
$con = mysql_query("SELECT * FROM Usuarios WHERE id=$id") or die (mysql_error());
while ($rw = mysql_fetch_assoc($con)) {
echo "Usuario:".$rw[usuarios]."<br>"."Rango:".$rw[rango]."<br>";
}
?>


Saludos, Dacan  :D

Pues lo que hace el programa es muy simple, le añade a la url '+and+1=1--' y guarda el source en una variable, luego hace lo mismo con '+and+1=0--' y si las dos variables no son iguales dice que es vulnerable, no veo donde puede estar el fallo, tal vez el source no cambia con esto? O igual es fallo de programación, pero no veo por donde puede fallar, que diera falsos positivos si, pero que de negativo cuando es vulnerable no lo entiendo  :P. Asegúrate que pones en el edit la url con la variable :http://www.pagina.com/index.php?variable=123 . Analiza el resultado, no analiza 'de forma profesional', ese código que tienes supongo que le quitaste los datos de la bd, pero para que le programa la detecte tiene que mostrar datos, para que al hacer el and 1=0 no lo muestre y viceversa.

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

Dacan

No te entendí bien pero puedes probar acá:

<?
$id = $_GET['id'];
$conexion = mysql_connect("----", "----", "---");
mysql_select_db("------", $conexion);
$con = mysql_query("SELECT * FROM Usuarios WHERE id='$id'") or die (mysql_error());
while ($rw = mysql_fetch_assoc($con)) {
echo "Usuario:".$rw[usuarios]."<br>"."Rango:".$rw[rango]."<br>";
}
?>


http://dacanphp.net46.net/perfil.php?id=1

Saludos, Dacan  :D

[Zero]

http://dacanphp.net46.net/perfil.php?id=1+and+1=1--
http://dacanphp.net46.net/perfil.php?id=1+and+1=0--

El source es totalmente igual entonces el programa no detecta vulnerabilidad, mira en cambio:

http://www.bullcariez.es/index1.php?id=1+and+1=1--
http://www.bullcariez.es/index1.php?id=1+and+1=0--

Ahí se ve claramente que hay inyeccion. Yo soy un novato en sql aún, no tengo mas experiencia que un par de semanas, no se como saber si tu página es vulnerable, yo diría que no lo es  :-\.

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

Dacan

Bueno no importa muchas gracias pero por ultimo cual es el codigo de el ejemplo que pones es que quiero saber.

Saludos, Dacan  :D

[Zero]

Cita de: Dacan en 11 Diciembre 2008, 21:44 PM
Bueno no importa muchas gracias pero por ultimo cual es el codigo de el ejemplo que pones es que quiero saber.

Saludos, Dacan  :D

Jaja, te entendí mal, disculpa, aquí esta:

Código (sql) [Seleccionar]
<html>
<body bgcolor=black>
<?php
// ----- CONFIG -------
$dbhost '-------------';
$dbuser '--------------';
$dbpass '-------------';
$dbname '--------------';
// --------------------
$user $_GET['id'];
if(empty(
$user)){
$user 1;
}
$db mysql_connect($dbhost$dbuser$dbpass) or die ("No se logro la conexión ...");
mysql_select_db($dbname,$db);
$sql mysql_query("SELECT * FROM `users` WHERE id=".$user) or die (mysql_error());
$users = @mysql_fetch_row($sql);
echo 
"<br><font color='#006600' size='7'><b><center>Taller Inyecciones SQL</center></b></font><br>";
echo 
"<font color='#006600' size='5'><center><u>Ser Hacker no es Ilegal</u></center></font><br>";
echo 
"<font color='#088A08' size='5'><center>Ejercicio nº 1</center></font><br><br>";
echo 
"<center><A HREF='http://www.bullcariez.es/index1.php?id=1'><font color='#006600' size='3'>Ver Usuario nº 1</font></A>&nbsp;&nbsp;&nbsp;<A HREF='http://www.bullcariez.es/index1.php?id=2'><font color='#006600' size='3'>Ver Usuario nº 2</font></A>&nbsp;&nbsp;&nbsp;<A HREF='http://www.bullcariez.es/index1.php?id=3'><font color='#006600' size='3'>Ver Usuario nº 3</font></A>&nbsp;&nbsp;&nbsp;<A HREF='http://www.bullcariez.es/index1.php?id=4'><font color='#006600' size='3'>Ver Usuario nº 4</font></A>&nbsp;&nbsp;&nbsp;<A HREF='http://www.bullcariez.es/index1.php?id=5'><font color='#006600' size='3'>Ver Usuario nº 5</font></A></center><br><br><br><br><br>";
echo 
"<font color='#088A08'><b>ID Usuario: </font><font color='#EFFBEF'>".$users[0]."</font></b><br>";
echo 
"<font color='#088A08'><b>País: </font><font color='#EFFBEF'>".$users[3]."</font></b><br>";
echo 
"<font color='#088A08'><b>Nº Mensajes: </font><font color='#EFFBEF'>".$users[4]."</font></b><br>";
echo 
"<font color='#088A08'><b>Email: </font><font color='#EFFBEF'>".$users[5]."</font></b><br><br><br><br><br>";
echo 
"<br><font color='#848484' size='4'><center>Consigue el nombre y contraseña del Administrador,luego intentalo con los demás users</center></font><br>";
mysql_close($db);
?>

</body>
</html>

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

anikillador

GRACIAS buen programa,

por cierto te lo dejastes "SIZEABLE" y a bajo estirando la ventana se puede ver la text box con la inyeccion.

saludos