菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
413
0

SQL注入常用爆库语句

原创
05/13 14:22
阅读数 22868

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

发表评论

0/200
413 点赞
0 评论
收藏