Duda Inyeccion sql...

Iniciado por andres_5, 11 Junio 2010, 23:28 PM

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

andres_5

Tuve que crear una web para el colegio, pero ahora estoy intentando inyectar codigo SQL a mi misma web, para experiencia personal...
el codigo es este:

$query = "INSERT INTO `usuarios`(log_nombre, contrasenya, nombre, email, localidad) VALUES (";
$query.= "'".$log_nombre."', '".$contraseña."', '".$name."', '".$email."', '".$localidad."');";


pero aprovecho el ultimo campo de localidad para intentar inyectar esto:

localidad'); DROP DATABASE `creandoside`('');


quedando en sentencia SQL algo como esto:
INSERT INTO `usuarios`(log_nombre, contrasenya, nombre, email, localidad)
VALUES ('123', '123', '123', '123', 'localidad'); DROP DATABASE `creandoside`('');

pero me aparece un error y no tengo ni idea de que sucede,
la sentencia del error de phpmyadmin es:

consulta SQL:
INSERT INTO `usuarios` ( log_nombre, contrasenya, nombre, email, localidad )
VALUES (
'123', '123', '123', '123', 'localidad.'
);
MySQL ha dicho: Documentación
#1046 - No database selected

saludos y muchas gracias ;)
PD: puse este mismo tema en apartado Programacion/Diseños Web/Bases de Datos... Espero que no os moleste pero pense que talvez es mas correcto aqui, si hay cualquier tipo de problema podeis borrad algunos de los dos temas ;)
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



winroot

es mas correcto en bugs a nivel web.
:D
saludos!
Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com

Shell Root

Lo que pasa es que en MySQL no se pueden concatenar querys con ; como se hace en MSSQL.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

andres_5

no entiendo bien lo que me quieres decir :S
Pero voy a añadir esto para evitar confusion:

<?php
include "base.php";
$name$_POST['usureg'];
$nick$_POST['nickreg'];
$pass$_POST['passreg'];
$pass2$_POST['passreg2'];
$email$_POST['emailreg'];
$localidad$_POST['locreg'];
if ($pass == $pass2){ 

 include "base.php";

        
$log_nombre=$_POST['nickreg'];
        
$contraseña=$_POST['passreg'];
$name$_POST['usureg'];
$email$_POST['emailreg'];
$localidad=$_POST['locreg'];

        
$query "INSERT INTO `usuarios`(log_nombre, contrasenya, nombre, email, localidad) VALUES (";
        
$query.= "'".$log_nombre."', '".$contraseña."', '".$name."', '".$email."', '".$localidad."');";

        
$resultado mysql_query($query$conexion);

        if (
$resultado) {
            echo 
'Usuario '.$log_nombre.' registrado con éxito.<br/>';
            
?>

           <meta http-equiv="refresh" content="5;URL=inicio.php">
           <?php
        
}
        else {
           echo 
'<br/>'.$query.'<br/><br/>';
           echo 
'Usuario '.$log_nombre.' y Contraseña '.$contraseña.', no ha podido ser registrado.<br/>';
       }}
        else{
?>

<script>alert('Debes confirmar la contraseña')</script>

<meta http-equiv="refresh" content="0;URL=registro.php">
<?php
}
?>

</body>

</html>


Gracias por vuestra atencion
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Shell Root

mmm te doy la respuesta de un Dios!, sé que no quieres hacer un UPDATE, pero supongo que es lo mismo que con un DELETE!
Cita de: sirdarckcat en 17 Febrero 2009, 18:23 PMno puedes hacer un UPDATE si ya estas en el contexto de un SELECT. en MySQL no se pueden hacer varias queries por consulta. (como en mssql).

Saludos!!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Lobito14

#5
Ahi veo varias cosas que no me terminan de convencer...

A ver, primero que nada, incluyes dos veces el archivo "base.php" que supongo que sera en el que tengas declarada la variable $conexion.

Podias poner tambien ese codigo aqui...

Porque el fallo que te da PhpMyAdmin es que no has selccionado la base de datos en la que hacer esa consulta, eso se hace con: "USE nombredb;"

Ya nos cuentas.

Shell Root

A lo que en PHP es así
Código (php) [Seleccionar]
$conexion = mysql_connect("localhost", "root", "root");
mysql_select_db("db_BaseDatos", $conexion);
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Lobito14

Cita de: shellroot@alex-laptop:~$ en 12 Junio 2010, 15:44 PM
A lo que en PHP es así
Código (php) [Seleccionar]
$conexion = mysql_connect("localhost", "root", "root");
mysql_select_db("db_BaseDatos", $conexion);


Ahí va! eso es lo que espero que tenga en su archivo "base.php", si no... ya sabemos donde tiene el problema!

Shell Root

Cita de: ErLoBo en 12 Junio 2010, 18:37 PM... ya sabemos donde tiene el problema!
El problema, es que ese no era el problema xD, lo que él queria hacer era inyectar código SQL, dentro de una Query ya construida.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Lobito14

Cita de: andres_5 en 11 Junio 2010, 23:28 PM

...

pero me aparece un error y no tengo ni idea de que sucede,
la sentencia del error de phpmyadmin es:

consulta SQL:
INSERT INTO `usuarios` ( log_nombre, contrasenya, nombre, email, localidad )
VALUES (
'123', '123', '123', '123', 'localidad.'
);
MySQL ha dicho: Documentación
#1046 - No database selected

saludos y muchas gracias ;)
PD: puse este mismo tema en apartado Programacion/Diseños Web/Bases de Datos... Espero que no os moleste pero pense que talvez es mas correcto aqui, si hay cualquier tipo de problema podeis borrad algunos de los dos temas ;)

Es que como el dice que le aparece un error y no tiene idea de lo que sucede, y como el error es "#1046 - No database selected", por eso pense que preguntaba por ese error.

Saludos!