elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Ayuda con esta inyeccion SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con esta inyeccion SQL  (Leído 2,477 veces)
4rkn63l

Desconectado Desconectado

Mensajes: 199



Ver Perfil
Ayuda con esta inyeccion SQL
« en: 7 Agosto 2010, 00:15 am »

hola, estoy aprendiendo sobre inyecciones sql y para ello instale un servidor y todo lo demas necesario en mi pc para practicar, he hecho una pagina con el tipico login vulnerable donde se pide un nombre de usuario y una contraseña,inicialmente para facilitarme las cosas he desactivado las magic quotes en php. he conseguido injectar codigo sql y entrar con alguna expresion que evaluada de como resultado algun valor verdadero,intentar entrar como algun usuario en concreto(like)...y otras cosas.

lo que me interesa saber es lo siguiente,se que con la funcion mysql_query solo puedo ejecutar una consulta, pero en los ejemplos que he visto en el codigo injectado ejecutan mas de una,¿como lograrlo,?pues lo he intentado y obtengo el warning:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\site\login.php on line 24

parte del codigo php es este:

Código:
$query="select * from login_users where user='$user' and passwd='$passwd'";
$result=mysql_query($query,$connection);
if(!mysql_num_rows($result))
{
echo"<p>Acceso denedago</p>";
}
else
{
echo"<p>Acceso concedido</p>";
}

al ejecutar mas de una consulta separadas por ';' dichas consultas no se ejecutan.¿como podria lograr ejecutar mas de una consulta?



En línea

VirajeCR

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Ayuda con esta inyeccion SQL
« Respuesta #1 en: 7 Agosto 2010, 00:35 am »

No me queda muy claro tu duda. Sería muy bueno que des a conocer cuales son las inyecciones que estás utilizando para darnos una idea de por donde va el problema. Por otro lado no se debe incluir ";" en las expresiones de SQL. Si no me equivoco esto se puede encontrar en la documentación de MySQL. Infiero que por hay pueda ir el problema.

Saludos.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Ayuda con esta inyeccion SQL
« Respuesta #2 en: 7 Agosto 2010, 01:39 am »

En MySQL no se pueden hacer varias queries por consulta. En MSSQL, SÍ.

La query principal es
Código
  1. SELECT * FROM login_users WHERE USER='$user' AND passwd='$passwd'

Como veo que no estas filtrando los valores de las variables, entonces se puede realizar un simple bypassing.
Código
  1. SELECT * FROM login_users WHERE USER=''[Aquí iSQL]--$user' and passwd='$passwd'
En línea

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


Desconectado Desconectado

Mensajes: 406

[NuKe] Team


Ver Perfil WWW
Re: Ayuda con esta inyeccion SQL
« Respuesta #3 en: 14 Agosto 2010, 01:13 am »

osea en realidad, si se puede generar una segunda consulta apartir de otra, pasa en las union sql injection


select * from noticias where id = 12 and+(select+user+from+mysql.user)=1
Si se fijan realmente se puede ejecutar 2 consultas.
el detalle esta en que tipo de funcion se pueda ejecutar, update,insert,etc, no puede ir predecedido de un select. es ahi el asunto. pero de que se puede generar 2 consultas como pregunta global, es un rotundi SI.


En línea

Undersecurity.net
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines