SQL注入的时候,找到了注入点,但是老是搞不清怎么爆库,最后还是得看大佬的WP
最后,终于下定决心自己整理一下爆库的常用语句和思路,如果哪里写的不对麻烦在评论区指出:-D
首先常用到的是这个数据库
information_schema
里面有许多表,记载了整个mysql里的各种信息,一般用得到的表为这两个
tables
tables表里面记载了整个数据库里所有的表的信息
重要的列有
- table_name: 表名
- table_schema: 表所在数据库名
这里我只查看了范例数据库(my_data)里的这两列
原来整个表的信息非常多,而且很长,我的屏幕是放不下,可以给你们感受下
—————————————————————————————————————————————————————
columns
columns表里记载了所有列的信息
重要的列有
- table_name: 列所在的表名
- table_schema: 列所在的数据库的名字
- column_name: 列的名字
- datatype: 这一列的数据类型
爆库基本流程
先爆出现在正在使用的数据库的名字和版本
select database(),version();
database()函数返回正在使用的数据库名
version()函数返回该数据库的表名
接着看看这个数据库里有什么
爆表名
select table_name from information_schema.tables where table_schema=database();
或
select table_name from information_schema.tables where table_schema=‘你查到的正在使用的数据库的名字‘;
从这几个表里选几个来看里面的列名,全部一起看容易乱,毕竟是网页里给出的位置在看,通常看起来会比较乱
比如我们这里查看student表里有什么列
select column_name from information_schema.columns where table_schema=database() and table_name=‘student‘;
注意名称需要用引号 ‘ 括起来
万事俱备,只欠东风,表名和列名都知道了,看就完了
select sname from student;
这里要注意,用网站给出的展示位来看这些信息的时候,大部分时候网页只展示列的第一个信息,我们往往看不到所需要的信息。
这个时候就需要我们用group_concat()函数了
group_concat()函数可以将放入函数的所有信息用逗号隔开,连成一个字符串,这样我们就可以成功爆库了。
码字好累hhhhhhh