Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: k-r-1-0-5 en 17 Febrero 2009, 17:27 pm



Título: Inyeccion SQL (mysql) dentro de un DELETE
Publicado por: k-r-1-0-5 en 17 Febrero 2009, 17:27 pm
Holas.. Resulta que tengo el codigo de un sitio al cual quiero hacerle una pequeña inyeccion no dañina.. (En serio)..
Tengo la instuicion de que en esta parte es posible una inyeccion, ya que no se filtra nada antes de pasarlo al mysql_query.....

Código:
<?php
//Aqui es donde se obtienen las variables sin filtrar..
$id=$_GET["id"];
$to=$_GET["to"];
$option=$_GET["option"];

if ($option=="delete"){
    require ('config.php'); //Conexion a la DB
    $queryz = "DELETE FROM tb_messenger WHERE id='$id' LIMIT 1";
    mysql_query($queryz) or die(mysql_error());
    mysql_close($con);
}
?>

Como ven, es la variable $id en la que hay que poner algo... pero cuando le pongo:
Código:
'; UPDATE ETC ETC; #
Ni me la pesca ni me da error...  :-(


Alguna idea??? Se los agradecere demasiado :$


Saludos!


Título: Re: Ayuda con inyeccion SQL please =)
Publicado por: Azielito en 17 Febrero 2009, 17:51 pm
a ps te da error por que no se puede =\ podrias eliminar otro registro xD

Código
  1. DELETE FROM tb_messenger WHERE id='1' OR id>='2';-- ' LIMIT 1
  2.                    `evilcode`     1' or id>='2';--

mas info aca:
foro.elhacker.net/nivel_web/inyeccion_sql_filtro-t241813.0.html


Título: Re: Ayuda con inyeccion SQL please =)
Publicado por: sirdarckcat en 17 Febrero 2009, 18:00 pm
en mysql no puedes hacer lo de poner 2 queries con ;

Debes usar subqueries (y ver que borraste XD).. la verdad esta complicado explotar una vulnerabilidad en el contexto de un DELETE, porque te serviria como blind, pero pues.. estarias limitado a la cantidad de entradas en la tabla..

Talvez con subqueries y mensajes de error segun diferentes estados puedan servir de algo pero.. esta complicado.

Saludos!!


Título: Re: Ayuda con inyeccion SQL please =)
Publicado por: k-r-1-0-5 en 17 Febrero 2009, 18:11 pm
Le puse un echo al codigo para ver como llega... y el resultado fue este:
Código:
DELETE FROM tb_messenger WHERE id='1\' or id>=\'2\';--' LIMIT 1

Estoy quemado cierto?? xD

Pero.. porque se le anteponen los \ a las comillas simples si no hay nada que filtre?? D:


Título: Re: Ayuda con inyeccion SQL please =)
Publicado por: sirdarckcat en 17 Febrero 2009, 18:12 pm
se llaman magic_quotes.. las anexa PHP automaticamente.

Saludos!!


Título: Re: Ayuda con inyeccion SQL please =)
Publicado por: k-r-1-0-5 en 17 Febrero 2009, 18:15 pm
Demonios.. xD
Se aplica tambien en las cookies? Hay otra parte en la que se pasa directamente el contenido de una cookie al query...

Que lindo es aprender algo nuevo.. gracias :$


Título: Re: Ayuda con inyeccion SQL please =)
Publicado por: sirdarckcat en 17 Febrero 2009, 18:19 pm
se aplica en todos lados..

:http://www.php.net/magic_quotes

Saludos!!


Título: Re: Inyeccion SQL (mysql) dentro de un DELETE
Publicado por: ChElAnO en 18 Febrero 2009, 18:18 pm
Citar
Le puse un echo al codigo para ver como llega...

un echo? Desde SQL o como?

saludos


Título: Re: Inyeccion SQL (mysql) dentro de un DELETE
Publicado por: OzX en 18 Febrero 2009, 18:53 pm
prova lo siguiente

OK
Código:
+and+(select+database())+--+ 

ERROR
Código:
+and+(select+databace())+--+

Dime hay algun cambio drastico al poner las dos?
Osea podria encontrar alguna diferencia en cuanto a tiempo de carga, redireccion, o error, en cuando pones una inyeccion valida y otra invalida. databace no existe xDˇ.

Saludosˇ