configuración de base de datos SQL principio de inyección inseguro de

1, el usuario predeterminado

base de datos de usuario con una gran cantidad de contenido de la instalación por defecto. SQL Server utiliza el famoso "SA" como una cuenta de administrador del sistema de base de datos, MySQL utilizando la "raíz" y la cuenta de usuario "admin", Oracle al crear una base de datos por lo general se crea de forma predeterminada la cuenta SYS, SISTEMA, DBSNMP y OUTLN, por supuesto, esto no es todas las cuentas.
Los desarrolladores de aplicaciones en la escritura de código normalmente se utiliza uno de la cuenta con privilegios construida para conectarse a la base de datos, en lugar de la vieja necesidad de crear una cuenta de usuario de acuerdo con las características del programa.

2, contenido adicional

Cuando un atacante explotar la vulnerabilidad de inyección SQL, a menudo tratan de acceder a los metadatos de base de datos. Los metadatos son datos contenidos en la base de datos interna, una base de datos o tabla tales como las columnas de nombre, tipo, o datos de acceso. Ventaja también se aplica al diccionario de datos y sistemas de directorio y otros artículos para representar la información.
MySQL Server (versión 5.0 y posterior) de metadatos base de datos virtual INFORMATION_SCHEMA ubicada y se puede acceder a través de las bases de datos comando show y tablas muestran. Todos los usuarios tienen derecho a acceder a la tabla de base de datos MySQL, pero sólo para ver las filas de la tabla con los correspondientes derechos de acceso del usuario.
principios similares y MySQL SQL Server, y por INFORMATION_SCHEMA o tablas del sistema (sysobjects, sysindexes, sysindexkeys, syscolumns , systypes , etc.) y el sistema de procedimiento almacenado para acceso a los metadatos. SQL Server 2005 introduce una serie llamada "sys. *" Vistas de catálogo, y restringir a los usuarios para acceder al objeto con los derechos de acceso adecuados. Todos los usuarios de SQL Server tienen acceso a las tablas de la base y se puede ver todas las filas de la tabla, independientemente de si el usuario tiene los derechos de acceso a la tabla de datos o consulta.
Oracle proporciona una función de vista de lo global odiaba el acceso a los metadatos de Oracle (ALL_TABLES, ALL_TAB_COLUMNS, etc.). La vista se enumeran las propiedades y objetos accesibles al usuario actual. Además, en vista del inicio de la pantalla sólo la USER_ objeto de usuario actual tiene (tales como columnas, una vista más restringido metadatos); Mostrar todos los objetos en la base de datos a la vista en el comienzo de DBA_. función de metadatos DBA_ requiere privilegios de administrador a la base de datos DBA.

Declaración Ejemplo
declaración de Oracle, citando el usuario actual puede acceder a todas las tablas

SELECT OWNER,TABLE_NAME FROM ALL_TABLES ORDER BY TABLE_NAME;

MySQL declaración, la lista de todas las tablas y bases de datos accesibles para el usuario actual

SELECT table_schema, table_name FROM information_schema.tables;

declaración MS SQL utilizando el sistema incluye una lista de todas las tablas accesibles

SELECT name FROM sysobjects WHERE xtype = 'U';

declaraciones MS SQL utilizando las vistas de catálogo tabla enumera todos accesibles

SELECT name FROM sys.tables;

3, por inferencia base de datos de identificación dialecto plataforma SQL

plataforma conector Líneas de comentario La tabla sólo por defecto, variable o función función de transferencia int Char
MS SQL Server 'A' + 'B' - @@ PACK_RECEIVED char (0x41)
Oráculo 'A' || 'B'
concat ( 'A', 'B')
- BITAND (1, 1) chr (65)
MySQL 'A' 'B'
concat ( 'A', 'B')
#
-
CONNECTION_ID () char (0x41)
Acceso “A” y “B” N / A MSysObjects chr (65)
PostgreSQL 'A' || 'B' - getpgusername () chr (65)
DB2 'A' concat 'b' - sysibm.systables chr (65)
Publicado 25 artículos originales · ganado elogios 23 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/Secur17y/article/details/101549701
Recomendado
Clasificación