一、Mysql常见面试题
1.在渗透测试工程师的岗位影片中,经常被问道一道关于Mysql数据库的问题。
问:在Mysql5.0以上和Mysql5.0以下的版本中最大的区别是什么?
答:在Mysql5.0以上的版本中加入了一个information_schema这个系统表,这个系统表中包含了该数据库的所有数据库名、表名、列表,可以通过SQL注入来拿到用户的账号和口令,而Mysql5.0以下的只能暴力跑表名;5.0 以下是多用户单操作,5.0 以上是多用户多操作。
二、information_schema介绍
1.查看数据库
show databases;
(查看数据库)
2.查看information_schema表
show tables;
(查看information_schema这个数据库的表)
其中最重要的是schemata、tables、columns这三个数据库
3.查询所有数据库
select * from information_schema.schema;
(查询information_schema库中的schemata表的所有内容)
4.查询所有的表名
select table_schema,table_name from information_schema.tables;
(查询information_schema库中的tables表的table_schema和table_name列)
5.查询所有的列名
select table_schema,table_name,column_name from information_schema.columns;
(查询information_schema库中的columns列中的table_schema和table_name和column_name列)
总结:在Mysql5.0以上的数据库中可以使用information_schema数据库来查看该数据的所有库、表、列名等信息,这对数据库爆库十分有帮助,因此我们在渗透测试阶段需要对Mysql数据库的版本多进行留意,利用information_schema这个数据库获取到我们需要的信息。对于大多数Mysql数据库来说,一般都是通过SQL注入,通过information_schema拿到数据库管理员的账号和密码,然后登录到数据库后台,进行下一步的操作。