elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 14:47  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Pregunta sobre SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta sobre SQL  (Leído 3,891 veces)
y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Pregunta sobre SQL
« en: 13 Julio 2006, 18:35 »

Alguien me puede paso por paso que significa eso?

Código:
SELECT password FROM usuarios WHERE user = ''0 and 0 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14

Yo lo unico k entiendo es k dice k seleccione el password de la tabla usuarios donde el el user (k supongo k sera un columna).. y a partir de ahi no entiendo lo k resta. No se k significa " 0 and 0 1,2,3,4....

Saludos.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #1 en: 14 Julio 2006, 00:35 »

busca info en el foro de inyeccion SQL y ve la web de la sintaxis de mysql.. pero este te lo explico rapido.

SELECT password FROM usuarios WHERE user = ''

esta primera parte lo que hace es obtener el password de la tabla usuarios donde el user sea igual a... nada :P

and 0 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14
esto es primero:
and 0
para que no regrese ningun resultado
el union select es para regresar un resultado de 2 sentencias, esta ves, no hace querys solo, al parecer es para saber que la tabla usuario tiene 14 columnas, pero por ejemplo:

union select 1,password,3,4,5,6,7,8,9,0,1,2,3,4 from usuarios

te debe regresar en el campo de usuario el password..

te recomiendo buscar sobre inyecciones sql en el foro hay 1 tutorial, y en la web unos mas.

Saludos!!
« Última modificación: 15 Julio 2006, 00:33 por Sdc » En línea

y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #2 en: 14 Julio 2006, 03:29 »

Ya m baje un manual de la web y m lo estoy leyendo, pero no entiendo bien la parte de union select. Segun entiendo yo union select es para unir dos setencias select, y esas 2 setencias tienen k seleccionar el mismo numero de columnas para k se pueda usar union select. x ej:
select *from nuke_authors where id=1 and user='nick' union select *from nuke_authors where id=2

Estas dos sentencias select no se podrian unir no?¿? xq la primera selecciona 2 clumnas y la segundo solo una, no es asi?¿?¿

Pero no k si k no entiendo es cuando pone ...union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14  o union select 1,password,3,4,5,6,7,8,9,0,1,2,3,4 from usuarios o union select @@version,1,1,1 , xq no se k representas esos numeros, quiero decir el 1,1,1 o 1,2,3,4,5.... Lo k se pone al lado de union select no son los nombres de las columnas, k son entonces esos numeros?¿

Saudos.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #3 en: 15 Julio 2006, 00:36 »

segun entiendo tu duda es sobre que significan los numeros..

solo son para contar las columnas, facilmente puedes usar 0,0,0,0 o 1,1,1,1 que daria la mayoria de las veces el mismo resultado..

select * from nuke_authors where id=1 and user='nick' union select * from nuke_authors where id=2

esa sentencia es valida.
te regresaria lo mismo que:
select * from nuke_authors where (id=1 and user='nick') or id=2

Saludos!!
En línea

y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #4 en: 17 Julio 2006, 01:38 »

Pero una pregunta Sdc, en
select * from nuke_authors where id=1 and user='nick' union select * from nuke_authors where id=2, el operador "union" no esta juntado 2 sentencias k seleccionan a su vez 1 y dos columnas? M explico, la primera sentencia, dice k seleccione de nuke_authors la fila en el k la columna user y la columna id sean "nick" y "1". Mientras k la 2 sentencia k seleccione la fila donde la columna id sea "2". Ya se k son la misma fila, pero en una selecciona dos columnas y en troa 1.
1.Q restriccion tiene el operador "union" entonces?
2. Para k se utiliza para mostrar mensaje de error?
3. Y otra cosa, porke para obtener un pwd ai k comerse tanto el coco y no vasta con poner en la inyeccion : ' select *from nuke_authors, o algo asi.

Saludos.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #5 en: 17 Julio 2006, 01:52 »

1.-
SELECT password FROM tabla WHERE columna='uno' AND otra='dos'

regresa solo una columna
cuando pones:

SELECT *

regresa todas las columnas.

por lo que
select * from nuke_authors where id=1 and user='nick' union select * from nuke_authors where id=2

esta seleccionando la misa cantidad de columnas

2.- para obtener informacion, como nombre de columnas, o incluso valores de campos.
3.- porque no seria una sentencia SQL valida.

Lee sobre mysql, para que puedas entender la sintaxis

Saludos!!
En línea

y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #6 en: 17 Julio 2006, 02:19 »

ok. entendido Sdc, gracias! Estoy leyendo un manual sobre sql, si m surgen mas dudas preguntare.

Saludos.
En línea
y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #7 en: 18 Julio 2006, 02:39 »

Bueno, estoy practicando esta tecnica y tengo unas cuantas preguntas mas:

1.Como sabes cuando una pagina es vulnerable? Te suele avisar si no lo es de k no se permiten ese tipo de inyecciones? Normalmente  las webs vulnerables se hace la inyeccion el "?id=" no es asi?

2. tengo un web vulnerable y no m va esta cadena: "'; insert into usuarios values (666, 'atacante', 'foobar', 0xffff)-- ". Me dice "Line 1: Incorrect syntax near ';'. " porke?¿

3. Cuando kieres hacer una inyeccion en el amdin.php k te pide user y pass, en el user puedes poner el k kieras y en el pass "'or 1=1--"? y si pones en el user "'or 1=1--" y el pass lo dejas en blanco tambien vale, verdad?¿

4. La web k encontre vulnerable, puedo acer la inyeccion en esta trayectoria: http://laweb.com/howcat.asp?id=, pedo convertirme en admin desde ahi, ya k la tabla a la k esta dirigida la consulta no es nuke_authors ni nada x el estilo.

5. Al poner 'having1=1--, me devuelve "Column 'Tree Data.Name' is invalid in the select list ..". cual es la tabla y la columna. Eske luego pongo "id=' group by Tree Data.Name having 1=1--" y me dice "Incorrect syntax near 'Data'. "

Sorry x tantas preguntas

Saludos.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #8 en: 18 Julio 2006, 02:52 »

1.- debes probar manualmente o hay algunos escanners, nikto, acunetix, etc..
2.- no acepta mas de 1 comando el server sql
3.- depende, algunas webs encriptan el password.
4.- Puedes obtener el pass del admin, o la pregunta secreta.. y demas datos.
5.- que server sql es?

Saludos!!
En línea

y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #9 en: 18 Julio 2006, 23:23 »

1.- En k variables se suele probar manualmente?
2. No hay ninguna manera entonces de insertar valores?
3. A q te refieres con cifrar el pass? con md5 ?
4. Y como puedo obtener el pass del admin desde showcat?
5. Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1).
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #10 en: 19 Julio 2006, 02:35 »

1.- en todas.. en cualquiera puede haber una inyección.. si en todas
2.- depende del servidor sql, si es MSSQL o Oracle, etc..
3.- sip, aunque pueden usar cualquier otro algoritmo.
4.- showcat? te debes referir a la pagina :P, con un union select.. mira:
SELECT contenido,nombre FROM mitabla WHERE id='' UNION SELECT password,user FROM adminis WHERE id='1'

debe regresar en contenido, el password y en nombre el usuario del administrador 1
5.- mmm hubiera leido esto desde el principio..
en el error de:
"Incorrect syntax near 'Data'. "
debes poner en esa sentencia el nombre de la tabla entre comillas.
Y en el error del insert, es porque no especificaste las columnas a las que quieres meter los valores.

Saludos!!
En línea

y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #11 en: 19 Julio 2006, 20:55 »

Weno, en primer lugar e averiguado poniendo la tabla entre comillas como me dijiste k las columnas se llaman: Name, Node.ID,ParentID y Header. Entonces pongo :
'group by "Tree Data".Name,"Tree Data".NodeID, "Tree Data".ParentID,"Tree Data".Header   having 1=1--
Y m devuelve este error :
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near '1'.
/showcat.asp, line 258
Segun el manual no deberia devolverte ewste error pero weno amos a lo demas.

4. En primer lugar probe lo k me dijiste, : id=' UNION SELECT password,user FROM adminis WHERE id='1' y me devuelve este error: Invalid object name 'adminis'. Es como si no existira la tabla adminis no? K ago entonces?

2. A ver pongo esto : '; insert into "Tree Data" (Name,NodeID,ParentID,Header) values('aaa','2','4','bbb')--
sabiendo k NodeID y ParentID son de tipo int, k falla? M pone el mismo error :


 

Microsoft OLE DB Provider for SQL Server error '80040e14'

Line 1: Incorrect syntax near ';'.

/showcat.asp, line 258
 
Saludos.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #12 en: 20 Julio 2006, 04:20 »

4: busca si hay alguna tabla llamada asi.
2: talves tenga algun parentesis, porque no hay error..

Saludos!!
En línea

y0mism0

Desconectado Desconectado

Mensajes: 238


Ver Perfil
Re: Pregunta sobre SQL
« Respuesta #13 en: 20 Julio 2006, 19:53 »

2. Y como busco el nombre de la tabla?Cual es el nombre por defecto de la tabla de autores en este sql server, como es mysql era nuke:authors? Es posible k no alla ninguna tabla k tenga el pass de los admin? eske pongo :laweb.com/admin.php y no m aparece nada...

2. a k te refieres con k tenga algun parentesis, no t entiendo..

Saludos.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Pregunta sobre SQL
« Respuesta #14 en: 21 Julio 2006, 01:21 »

2(1): mmm puedes obtener el nombre de las tablas por diferentes metodos, pero hay una herramienta llamada automagic SQLinjection, esta en este mismo foro, usala para enumerar las tablas ;)

2(2): necesitas ver que en la sintaxis no haya ningun parentesis, por ejemplo:

SELECT * FROM tabla WHERE (id='';

esta mal, porque no cerraste parentesis, deberia ser asi:

SELECT * FROM tabla WHERE (id='');

etc..

Saludos!!
En línea

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

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines