Tutorial de Inyección SQL (SQL Injection)

Iniciado por sirdarckcat, 10 Diciembre 2005, 04:34 AM

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

Hans el Topo

#20
if (!$_POST){
//formulario por post blabla solo muestro lo interesante
echo"<INPUT TYPE='text' NAME='user' >";
                echo"<input type='password' NAME='pass'>";
//
}else{
//recogemos la información introducida
$user=$_POST["user"];
$pass=$_POST["pass"];

                //comprobamos que la información introducida no esta vacia blabla
                $pass=md5($pass); //contraseña cifrada
               //pedimos el usuario y la contraseña
                $resp=mysql_query("select user,password from usuarios where user like '$user' limit 1",$conecta);

if(mysql_num_rows($resp)>0){
$fila=mysql_fetch_array($resp);
$password=fila[1];
if($password==$pass){
                                //aki podriamos añadir  &&usuario==$user para hacerlo mas efectivo?
echo"Bienvenido $use conectado";
}else{
echo "Error al conectar";
}
}else{
echo "Error al conectar";
}

}


como se podría crakear esa validación? lo he estado intetando pero no lo he logrado, una ayudita?
 

sirdarckcat

#21
mmm.. intenta con esto en user.. depende de la estructura de la BD.. pero talvez funciona.
admin' UNION SELECT user,password /*

TeCh

A lo mejor me llevo alguna mala contestacion por vuestra parte, pero quisiera saber si seria posible el hackear una web en php, esta no tiene ningun filtro de alfanumerico, pero parece que si que tiene alguna otra proteccion, ya que al poner cualquier cosa que no sea un numero, me salta este error:


No puc connectar *|* SELECT * FROM articles WHERE id_article=0 and 0 UNION SELECT 1 limit 1


Es como si pusieras lo que pusieras, no contrara ante el codigo de mysql.

En fin, a ver si me podeis orientar un poko ante esto. Gracias.

R2d2_

Hola... entiendo la inyeccion mas o menos sin ningun problema... El problema es cuando subo el archivo hackme.php a un servidor ( con php habilitado claro ) y no me lo arranca bien... Ademas estan configuradas las variables "dbhost" "dbuser" y "dbpass" la de "dbdata" no se lo que es ¿ una manita ? thx

sirdarckcat

necesitas un servidor sql r2d2_ ve el manual de e-brujo sobre instalar apache, ahi te dice como isntalar el mysql tambien

Saludos!!

sonyx_32

como que se que una pagina es vulnerable a este ataque, y como encuentro el archivo .php que interactua con la base de datos para hacer las inyeccciones o con cualquier archivo .php se pueden, disculpen mi ignorancia :rolleyes:

_the_master_36

Pues miren, iba a trabajar sobre un script en una web de una empresa, hace ya tiene poco tiempo e hice un script... llamado oferta.php, en el cual puse algo asi:


$resp=  mysql_query("SELECT * FROM cupon WHERE code = '$code'");
if(mysql_num_rows($resp) != 0) {


En el cual si el número dado es diferente a cero (osea que exista) procede a la acción. El problema es que actualmente ya no trabajo en la empresa, pero supe que pusieron online el script, y leyendo este post, queria yo intentar hacerlo, por que se que para poder controlar los codigos de oferta van poniendo manualmente números de dos digitos, osea algo asi: 01,02,03,04 y asi.. a estos les puse que se iban a llamar ID, no es automatico, sin embargo lo van poniendo manualmente para que a la hora de borrarlo sea mas fácil.

Y pues intente aplicar lo de OR pero no me funciono.. :P




sirdarckcat

sonyx - creo que no entendiste el ataque..
the_master_63 - talves tiene las magic_quotes :P.. o le agregaron algun filtro..

Saludos!!

_the_master_36

Si entendi, y no creo que le hayan puesto filtro, por que a como acabe algunos script de la web, los iban subiendo.. Mira lo que intente fue esto: ' OR id = '01, yo se que hay una columna que se llama ID conde van poniendo los números seguidos asi: 01,02,03 por que asi lo deje..

Entonces la sentencia quedo asi:

$resp=  mysql_query("SELECT * FROM cupon WHERE code = '$code' OR id = '01'");
if(mysql_num_rows($resp) != 0) {


Pero no jalo xD  :rolleyes:




sirdarckcat

entonces tiene las magic quotes xD

Saludos!!