利用innodb引擎的mysql注入

今天在先知上看到了这篇文章,觉得有必要记录一下
Mysql注入新姿势—innodb存储引擎的利用
平时接触比较多的mysql爆库名爆表名是通过information_schema表来完成的,如果information_schema被过滤了,应该是有方法继续注入,但是我不会…orz,所以看到先知的文章就觉得眼前一亮,学习一波。

Start

自从MySQL 5.5起,默认的数据存储引擎就为InnodDB。在MySQL 5.5上,如果你运行了select @@innodb_version,就会显示出InnoDB的版本,这和你的MySQL版本应该是一样的。(这个方法同样适用与Mariadb,所以下面我就用Mariadb来演示)

从MySQL 5.6起,InnoDB新增加了两张表innodb_index_statsinnodb_table_stats,这两张表记录了所有新建的数据库与表,不幸的是InnoDB没有记录字段

所以我只能爆库名和表名

innodb_index_stats

select * from mysql.innodb_index_stats

innodb_table_stats

select * from mysql.innodb_table_stats


payload:select table_name from mysql.innodb_table_stats where database_name = schema()

EOF

参考资料:

部分翻译于
Alternative for Information_Schema.Tables
in MySQL

Mysql注入新姿势—innodb存储引擎的利用