SQL注入常用爆库语句

SQL注入的时候,找到了注入点,但是老是搞不清怎么爆库,最后还是得看大佬的WP
最后,终于下定决心自己整理一下爆库的常用语句和思路,如果哪里写的不对麻烦在评论区指出:-D

首先常用到的是这个数据库

information_schema
SQL注入常用爆库语句

里面有许多表,记载了整个mysql里的各种信息,一般用得到的表为这两个


tables
tables表里面记载了整个数据库里所有的表的信息
重要的列有

  • table_name: 表名
  • table_schema: 表所在数据库名
SQL注入常用爆库语句

这里我只查看了范例数据库(my_data)里的这两列


原来整个表的信息非常多,而且很长,我的屏幕是放不下,可以给你们感受下

SQL注入常用爆库语句

—————————————————————————————————————————————————————
columns
columns表里记载了所有列的信息
重要的列有

  • table_name: 列所在的表名
  • table_schema: 列所在的数据库的名字
  • column_name: 列的名字
  • datatype: 这一列的数据类型
SQL注入常用爆库语句




爆库基本流程

先爆出现在正在使用的数据库的名字和版本
select database(),version();

database()函数返回正在使用的数据库名

version()函数返回该数据库的表名

SQL注入常用爆库语句

接着看看这个数据库里有什么

爆表名

select table_name from information_schema.tables where table_schema=database();



select table_name from information_schema.tables where table_schema=‘你查到的正在使用的数据库的名字‘;

SQL注入常用爆库语句





从这几个表里选几个来看里面的列名,全部一起看容易乱,毕竟是网页里给出的位置在看,通常看起来会比较乱

比如我们这里查看student表里有什么列
select column_name from information_schema.columns where table_schema=database() and table_name=‘student‘;

注意名称需要用引号 ‘ 括起来

SQL注入常用爆库语句

万事俱备,只欠东风,表名和列名都知道了,看就完了

select sname from student;

SQL注入常用爆库语句









这里要注意,用网站给出的展示位来看这些信息的时候,大部分时候网页只展示列的第一个信息,我们往往看不到所需要的信息。

这个时候就需要我们用group_concat()函数了

group_concat()函数可以将放入函数的所有信息用逗号隔开,连成一个字符串,这样我们就可以成功爆库了。

码字好累hhhhhhh

SQL注入常用爆库语句

上一篇:算法训练 Hanoi问题


下一篇:Android组件化设计3 ---- KotlinPoet的高级用法