SQL注入备忘录-information_schema
介绍
INFORMATION_SCHEMA 是 MySQL 提供的一个特殊数据库,用于存储关于数据库系统、表、列等元数据的信息。可以使用 INFORMATION_SCHEMA 中的各种表来查询数据库、表、列等信息。
查询所有数据库名称
SELECT SCHEMA_NAME
FROM INFORMATION_SCHEMA.SCHEMATA;
查询某个库下的表名
要获取特定数据库中的所有表的名称,可以查询 INFORMATION_SCHEMA.TABLES 表,并按 TABLE_SCHEMA 过滤:
例如查询security库的表
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'SECURITY';
查询列名
要获取特定表中的所有列的名称及其相关信息,可以查询 INFORMATION_SCHEMA.COLUMNS 表,并按 TABLE_SCHEMA 和 TABLE_NAME 过滤:
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'SECURITY' AND TABLE_NAME = 'users';