SQL注入中information_schema的作用

实验内容与步骤
在phpmyadmin中,在左侧点击information_schema数据库。可以查看此数据库中所有的表。

 

执行   show tables;  语句来查看该库中的所有表: 

 

 想要查看数据库的数据保存目录,可以执行select @@datadir

 

 执行show databases;的时候,可以看到存在的数据库

 

 进入mysql终端,由于root的密码为空,直接回车即可。 进入information_schema 数据库,命令为:use information_schema; 。(注意后面记得加分号)

 

  首先执行show databases;查看所有的数据库,然后再执行select schema_name from schemata;。

 

  desc 可以用来看表结构。看下tables的表结构,执行desc tables;。

 

 查看有多少条记录,执行select count(*) from tables; 。查询任意一条记录查看,在此选择的为最后一条记录,SQL语句为:select * from tables limit 141,1\G。(\G,会让一条记录显示一行。但只支持在客户端中使用)

 

 查看sqli数据库中的表,SQL语句为:show tables from sqli;。若想要通过information_schema数据库来查询sqli数据库中所有的表,那么就可以使用如下SQL语句:

      select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = 'sqli';

 

 查看COLUMNS表结构。(此表保存了整个数据中,所有的列名)

 

 确定该表有多少条记录,执行select count(*) from columns;我们获取最后一条记录,执行select * from columns limit 1661,1\G

 

  查看sqli的user表是否存在该字段,执行SQL语句:show columns from sqli.user;

分析与思考

为什么网上的SQL注入语句中,数据库名都是用的字符的16进制值?
可以避免引号绕过等,方便查找
 
posted @ 2021-10-31 18:30  ウルトラマンタイロ  阅读(52)  评论(0)    收藏  举报