La Comunidad DragonJAR  

Retroceder   La Comunidad DragonJAR > Seguridad > Seguridad en Bases de Datos

¿Qué es La Comunidad DragonJAR?

DragonJAR.org es una comunidad de investigadores, estudiantes, profesionales y entusiastas de la Seguridad Informática, En la cual se busca darle un enfoque eminentemente práctico a la teoría sin olvidar las bases esenciales de esta.

De esta manera se Tratará de ofrecer soluciones útiles a los usuarios, tanto novatos, estudiantes, como a los profesionales e investigadores, Teniendo presente que el mundo de la seguridad informática y la información es un medio que se auto inventa constantemente.

La Comunidad DragonJAR es un espacio abierto y libre para cualquier persona que desee compatir en un ambiente digital sus conocimientos o sus dudas. El registro es gratuito, toma poco tiempo y te permite disfrutar de todas las características del sitio.

Si es tu primera visita, quizás deberías visitar la Ayuda para aprender un poco sobre el uso de los foros, para empezar a ver mensajes, selecciona el foro que quieres visitar de la lista de abajo.

Respuesta
 
LinkBack Herramientas Desplegado
Antiguo 27-Jun-2009, 17:30   #1
Dragonauta
 
Avatar de PerverthsO
 
Fecha de Ingreso: 11-August-2008
Mensajes: 185
Gracias: 9
Agradecido 45 veces en 23 Mensajes
PerverthsO está en el buen camino
Predeterminado Una forma para descubrir datos (SQL Inyección)

Bueno muchas veces nos vemos con n lamentable panorama cuando estamos "auditando" una página y nos quedamos truncados ante las restricciones de falta de información sobre los datos q deseamos obtener como por ejemplo nos vemos ante una injeccion SQL

Index.php?Id=unión select 1,2,3,4,5,6,7 /*

Muy bien ahora probamos en obtener el nombre de la tabla como normalmente hacemos es tantear resultados como por ejemplo colocamos

Index.php?Id=unión select 1,2,3,4,5,6,7 from usuarios/*
Index.php?Id=unión select 1,2,3,4,5,6,7 from usuario/*
Index.php?Id=unión select 1,2,3,4,5,6,7 from admin/*

Para nuestro ejemplo asumimos que en la tabla donde guarda la información de los usuarios se llama admin muy bien pero ahora no sabemos cuáles son los nombres de sus columnas (atributos) para eso una de las primeras cosas que hacemos es también probar posibles valores como por ejemplo.

Index.php?Id=unión select 1,usuario,password,4,5,6,7 from admin/*
Index.php?Id=unión select 1,usuario,pass,4,5,6,7 from admin/*
Index.php?Id=unión select 1,user,password,4,5,6,7 from admin/*

Bueno así pero en muchos casos no logramos obtener el nombre de las columnas muy bien y bueno los que saben algo más de mysql o de un respectivo gestor de base de datos hace las consultas a las base de datos donde se guarda dicha información como son:

Information_schema ----> MySQL
Sysobjets ----> Sql server

Y bueno los respectos de cada gestor.
Muy bien nosotros suponemos para nuestro ejemplo que la victima corre su base de datos con MySQL entonces usaremos la base de datos information_schema de ahí sale la pregunta que información guarda esa base de datos?
Bueno existen en dicha base de datos dos tablas que son de interés a los que hacen una auditoria que son la tabla

• Tables: en dicha tabla se guarda información del nombre de las tablas que se encuentran creadas en el gestor y la respectiva base de datos a la que pertenece.
• Columns: en dicha tabla se guarda información del nombre de la columnas y el nombre de la tabla a la pertenece dicha columna.

Muy bien informándonos sobre la existencia de esa base de datos y las tablas que tiene procedemos a hacer consultas bueno nuestra consulta se reduce a averiguar el nombre de las columnas de la tabla “admin” que es el nombre de de la tabla de nuestro ejemplo muy bien la consulta seria de la siguiente forma:

Index.php?Id=unión select 1,column_name,table_name,4,5,6,7 from information_schema.columns where table_name=’admin’/*

ok pero en muchos casos sucede que las paginas filtran las comillas simples como es en el caso de php con su directiva magic_quotes que cuando esta activada ósea en “On” nos filtra dichos valores y no logramos hacer la consulta muy bien.

Una forma de saber si php tiene Magic_quoted =On o esta filtrando las comillas simples con alguna otra función como puede ser la función addslashes que también hace lo mismo es colocar comillar en el valor q estamos usando y vemos los resultados.

Index.php?Id=unión select 1,’2’,3,4,5,6,7 /*

si nos muestra los valores como si nada hubiera pasado es que tiene Magic_quotes=Off
pero si nos manda error o simplemente no nos manda datos eso quiere decir que tiene Magic_quotes=On o filtra los datos con alguna función.
Ahora un forma de bypassear esto es que sabemos que mysql y otros gestores pueden tomar valores ascii y entenderlos como cadenas de texto entonces solamente convertimos la cadena ”admin” a una cadena de valores ascii y la consulta quedaría de la siguiente forma.

Index.php?Id=unión select 1,column_name,table_name,4,5,6,7 from information_schema.columns where table_name=CHAR(97, 100, 109, 105, 110)/*

Pero sucede que en muchos casos no tenemos permisos para poder hacer consultas a la base de datos Information_schema bueno.

Muy bien pero no demos por vencidos existe aun alternativas ahora en muchos casos los programadores de las paginas web se olvidan administrar los errores y en muchos casos nos sale la dirección física de la pagina web, muy bien pero de hablo cuando digo dirección física un ejemplo podrá mas q mil palabras.

/home/victima/www/index.php ---> dirección Fisica.
victima.com: The Leading Personal Injury Site on the Net ---> dirección virtual

ahora suponemos que en nuestro ejemplo logramos ver la dirección física bien pero que podemos hacer para saber el nombre de la columnas de nuestra tabla, para esto existe una función en MySQl que se llama LOAD_FILE que lo que hace es cargar en texto plano el contenido de un archivo entonces lo que tendríamos q hacer es buscar el nombre de la página de logeo y asi saber cuál es el script que hace la consulta a la base de datos para el logeo de los usuarios en nuestro ejemplo será “login.php” entonces lo que hacemos es cargar el contenido de ese script para poder saber sobre la consulta que se hace y de ahí poder sacar los datos del nombre de las dichosas tablas la consulta seria de la siguiente forma.

Index.php?Id=unión select 1,LOAD_FILE(‘/home/victima/www/login.php ‘),3,4,5,6,7 /*

Pero puede q pase como en el caso anterior nos filtre las comillas entonces tenemos que usar los valores ascii para poder hacer la consulta de la siguiente forma.

Index.php?Id=unión select 1,LOAD_FILE(CHAR(47, 104, 111, 109, 101, 47, 118, 105, 99, 116, 105, 109, 97, 47, 119, 119, 119, 47, 108, 111, 103, 105, 110, 46, 112, 104, 112)),3,4,5,6,7 /*

Muy bien hacemos la consulta pero en muchos casos tampoco podemos ver los datos por no tener los permisos respectivos .
Ahora existe una ultima forma que fue la razón de este post  que bueno nolo vi en otro lado y si es q hay no sabia es algo que alguna vez me ayudo y que funciona en todos los gestores que usan sql como son sqlserver, mysql, postgre, oracle, etc.
Bueno sabes que en la sintaxis de sql podemos asignar ciertos nombres para el nombre de las columnas y tablas ok entonces nosotros le daremos un nombre a nuestra tabla de la siguiente forma

Index.php?Id=unión select 1,2,3,4,5,6,7 from admin a/*

El nombre que le asignamos es “a” ahora hacemos la consulta de la siguiente forma.

Index.php?Id=unión select a.*,2,3,4,5,6,7 from admin a/*

El valor “a.*” quiere decir todos los valores de la tabla admin ahora si es que la tabla admin tendría una sola columna nos mandaria su valor ahora quitamos los nros de acuero al nro de columnas de la tabla admin en nuestro caso la tabla admin tiene 5 columnas entonces la consulta quedaría de la siguiente forma.

Index.php?Id=unión select a.*,6,7 from admin a/*

Ahora nos mostrar los valores de la tabla ”admin2 sin tener conocimiento del nombre de sus columnas es una alternativa no muy efectiva pero bueno es una alternativa mas que los traigo ahora para que se logre hacer una consulta de esa forma se tiene que dar ciertas condiciones como que el nro de columnas de la injeccion debe ser mayor al nro de columnas de la tabla de consulta en nuestro caso “admin”
Bueno espero les sea de utilidad este post hast un pronto post saludos para todos cualquier duda no duden en postearlo saludos Perversos

fuente Cusco Soft - Informatica del Cusco para el mundo
__________________
PerverthsO
PerverthsO está desconectado   Responder Citando
Los siguientes 5 Usuarios dicen Gracias a PerverthsO por este util Mensaje:
Dédalo (27-Jun-2009), DragoN (27-Jun-2009), fortress (28-Jun-2009), servant (29-Jun-2009), ZE77A (25-Sep-2009)
Antiguo 27-Jun-2009, 17:50   #2
Dragonauta con Privilegios
 
Avatar de Dédalo
 
Fecha de Ingreso: 22-March-2009
Ubicación: Lima - Perú
Mensajes: 289
Gracias: 18
Agradecido 70 veces en 51 Mensajes
Dédalo llegará a ser famoso muy pronto
Predeterminado

ala te pasaste Perverths0 enserio muy buen tuto

Saludos
Dedalo(Dédalo)
__________________



Siganme en twitter

http://twitter.com/seguridadblanca
Dédalo está desconectado   Responder Citando
Los siguientes Usuarios dicen Gracias a Dédalo por este util Mensaje:
Epsilon (27-Jun-2009)
Antiguo 27-Jun-2009, 17:56   #3
Dragonauta
 
Avatar de PerverthsO
 
Fecha de Ingreso: 11-August-2008
Mensajes: 185
Gracias: 9
Agradecido 45 veces en 23 Mensajes
PerverthsO está en el buen camino
Predeterminado

bueno pensaba siempre hacer un tuto asi pero nome daba tiempo y ahora q tengo es cuando lo hice y gracias man seran las antesalas a nuestro lab. jejeje
__________________
PerverthsO
PerverthsO está desconectado   Responder Citando
Antiguo 27-Jun-2009, 18:35   #4
Administradores
 
Avatar de Epsilon
 
Fecha de Ingreso: 11-August-2008
Ubicación: Colombia
Mensajes: 627
Gracias: 128
Agradecido 67 veces en 48 Mensajes
Epsilon está en el buen camino
Predeterminado

tambien puedes hacer consulta de este tipo para saber mas info:

Index.php?Id=unión select 1,version(),3,4,5,6,7 /* -> muesta la version del server mysql
Index.php?Id=unión select 1,user(),3,4,5,6,7 /* -> muestra el usuario con el cual esta logueado
Index.php?Id=unión select 1,database(),3,4,5,6,7 /* -> muestra el nombre de la BD

Por otra parte si filtran las comillas tambien puedes convertir la cadena a hexadecimal...

Un saludo y buen tutorial
__________________



Epsilon está desconectado   Responder Citando
Antiguo 28-Jun-2009, 14:45   #5
Dragonauta
 
Avatar de PerverthsO
 
Fecha de Ingreso: 11-August-2008
Mensajes: 185
Gracias: 9
Agradecido 45 veces en 23 Mensajes
PerverthsO está en el buen camino
Predeterminado

bueno de sacar info de ese tipo claro q se puede y no lo tome en cuenta porq.. nose porq no lo tome :P porq el tuto iva mas a como sacar info de tablas ahora lo de la cadena claro q sip puede ser por ascii o cadena hexadecimal q es valido cualquierda de los dos
__________________
PerverthsO
PerverthsO está desconectado   Responder Citando
Antiguo 13-Oct-2009, 12:39   #6
Recien Nacido
 
Avatar de nestor1318
 
Fecha de Ingreso: 07-September-2009
Mensajes: 9
Gracias: 5
Agradecido 0 veces en 0 Mensajes
nestor1318 está en el buen camino
Predeterminado

me gustaria entender estos temas no me podrian aconsejar un buen manual que empiece de cero
nestor1318 está desconectado   Responder Citando
Antiguo 13-Oct-2009, 13:14   #7
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 707
Gracias: 2
Agradecido 273 veces en 152 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado

Cita:
Iniciado por nestor1318 Ver Mensaje
me gustaria entender estos temas no me podrian aconsejar un buen manual que empiece de cero
Mirate esto:
Privacy Dont Exist Any More!: Tutorial Ijection SQL
Una forma para descubrir datos (SQL Inyección) - Cusco Soft

Saludos!
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Los siguientes Usuarios dicen Gracias a Shell Root por este util Mensaje:
nestor1318 (14-Oct-2009)
Antiguo 14-Oct-2009, 11:59   #8
Recien Nacido
 
Avatar de nestor1318
 
Fecha de Ingreso: 07-September-2009
Mensajes: 9
Gracias: 5
Agradecido 0 veces en 0 Mensajes
nestor1318 está en el buen camino
Predeterminado

muchas gracias estuve ojeando la pagina esta muy buena mas tarde la voy a leer a fondo
nestor1318 está desconectado   Responder Citando
Antiguo 11-Nov-2009, 11:39   #9
Recien Nacido
 
Avatar de c1b3rh4ck
 
Fecha de Ingreso: 09-November-2009
Mensajes: 2
Gracias: 0
Agradecido 0 veces en 0 Mensajes
c1b3rh4ck está en el buen camino
Predeterminado

Las consultas que ahi aqui son aplicables alas distintos vulnerabilidades o es segun la configuracion de la base de datos que es aplicable pero como dijo Epsilon puedes utilizar otras que des`pues posteare
__________________
Nuestra filosofia nos identifica , Se libre como el viento apoya el software libre
c1b3rh4ck está desconectado   Responder Citando
Respuesta

Etiquetas
datos, descubrir, forma, inyecciã³n, inyeccion, sql

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado



La franja horaria es GMT -6. Ahora son las 05:34.