SQL注入能做什么

正像小偷从窗户爬进入房间,他不仅能在能在房间内偷东西, 也可以将整个房子洗劫一空。

接下来看看如何利用SQL注入注入进行爆库爆表甚至报数据 !

原理

当知道了目标网站可以进行SQL注入的时候, 如何进一步知道有哪些数据库、哪些表和字段呢?

答案是, 在mysql中有一个元数据库, 

里面存储了所有整个mysql中有什么数据库, 什么表以及每个表中有哪些字段, 就相当于把自己的所有财产都告诉别人了

那么, 只要知道了这个原理, 流程如下:

元数据库 -->  数据库  -->  表  -->  字段  -->  内容

 

1. 元数据库

元数据如何获取呢? 

利用 show databases; 就可以看到元数据库 information_schema了

mysql爆破口令字典下载_mysql爆破口令字典下载

里面应有尽有, 可以尽情开放的处女地

 

2. 查看所有数据库

有了元数据库, 我们可以看看里面有些什么表:

mysql爆破口令字典下载_字段_02

其中 schemata表中就是存储mysql的所有数据库了, 我们可以查看一下里面的数据

mysql爆破口令字典下载_字段_03

可以看到mysql中有4个数据库

这里的访问形式为: 数据库.表名,

 

3. 查看表

在元数据表中, TABLES存储数据库中所有的表名:

mysql爆破口令字典下载_mysql爆破口令字典下载_04

加入我们通过以上步骤知道了所有数据库的名字, 现在需要进一步挖出指定数据(就比如数据库sys吧)的所有表名, 

我们可以听过查看information_schema中的TABLES描述:

mysql爆破口令字典下载_字段_05

其中 TABLES_SCHEMA 和 TABLE_NAME

例如, 要查看数据库sys下的所有表:

select TABLE_SCHEMA, TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='sys';

mysql爆破口令字典下载_表名_06

黄框内即为sys数据库下所有的表名

 

4.  查看字段

现在已经知道了表名, 要进一步挖出字段

所有表的字段信息也在information_schema中:

mysql爆破口令字典下载_字段_07

看看COLUMNS的描述:

mysql爆破口令字典下载_数据库_08

COLUMNS_NAME 存储有所有表的所有字段信息

假如有查看数据库sys中的 host_summary 表的字段:

select TABLE_NAME, COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='host_summary';

mysql爆破口令字典下载_表名_09

表的所有字段就出来了!

 

5.  查看数据

所有信息已在掌控之中!  现在只需进行一个简单的查询操作就可以得到数据了:

mysql爆破口令字典下载_数据库_10

大功告成!!  成功拿到数据.

 

 

总结 

INFORMATION_SCHEMA   :  元数据库,里面应用尽有

SCHEMATA                          :  里面描述了整个mysql下的所有数据库

TABLE_SCHEMA                 :  数据库名

TABLE_NAME                     :  表名

COLUMNS                           :  存储所有表的所有字段

COLUMN_NAME                 :  字段名

@@version_compile_os      :  操作系统