在SQL注入中,会经常对mysql数据库的information_schema数据库中的一些表进行查询,一次来获得自已想要的信息。
常用的表有:
SCHEMATA表: 提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。
TABLES表: 提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。
COLUMNS表: 提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。
SCHEMATA表
在schemata表中有5个字段,最常用的就是schema_name,这个字段存放的所有数据库的名称。
TABLES表
information_schema.tables存储了数据表的元数据信息,下面对常用的字段进行介绍:
table_schema: 记录数据库名;
table_name: 记录数据表名;
engine : 存储引擎;
table_rows: 关于表的粗略行估计;
data_length : 记录表的大小(单位字节);
index_length : 记录表的索引的大小;
row_format: 可以查看数据表是否压缩过;
COLUMNS表
COLUMNS表的每一条记录都对应了数据库中某个表的某个字段,常用的字段:
table_schema 表格所属的库。
table_name 表名
column_name 字段名
ordinal_position 字段标识。其实就是字段编号,从1开始往后排。
column_default 字段默认值。