Sql注入-mysql系统关键表

数据库系统表相关

知识需要温习并实践才能牢牢掌握在手中

一、初始数据库

可以看到初始的mysql有以下4个库(不同版本的mysql有所不同)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
数据库名 说明
information_schema 具有61个表,保存着mysql维护的所有其他数据库的信息:如数据库名、数据库表、数据库字段、用户权限、表权限、列权限等信息。
mysql 具有31个表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息,不可以删除。
performance_schema 具有87个表,PERFORMANCE_SCHEMA这个功能默认是关闭的。需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中 不能动态修改。

二、各数据库中重要的表

1. information_schema

schemata 表

存储数据库的信息

SELECT * FROM SCHEMATA;

爆数据库语句:sql注入时查看有哪些数据库

select group_concat(schema_name) from information_schema.schemata;

tables 表

存储关于数据库中的表的信息

SELECT * FROM TABLES;

columns 表

存储列的信息

select * from columns where table_name='users';

这里因为只有dvwa库中存在users表,所以这里查询结果为users表的列信息

user_privileges 表

存储用户权限信息

 select * from user_privileges;

2. mysql

user表

存储 用户列、权限列、安全列、资源控制列的信息

select * from mysql.user;

三、利用数据库读写文件

三种方法读写文件:

load_file

load data infile

select sql outfile

1. load_file 方法

有以下限制条件:

(1) 文件权限和大小:当前权限对该文件可读、文件大小小于max_allowed_packet。

(2) 用户权限:当前数据库用户有FILE权限

(3) 可操作路径: 查看secure_file_priv,如果值为某目录,那么就只能对该目录的文件进行操作

secure_file_priv 值 权限说明
null 表示限制mysql不允许导入/导出
具体目录/路径 表示限制mysql的导入/导出只能发生该目录下
无具体值 表示不对mysql的导入/导出做限制

首先查看读写权限:

查看当前登录用户

select user();

select user, file_priv from mysql.user;

可见root用户具有文件读写权限

查看可操作路径:

show global variables like '%secure%';

secure_file_priv 值为null,表示mysql不允许导入导出。

此时我们修改配置文件

在[mysqld]修改 **secure_file_priv = \ ** 即可

create database test1;

use test1;

create table user(data text);

insert into user(data) values(load_file('C:\\Users\\user\\Desktop\\1.txt'));

select * from user;

读取成功

2. load data infile 方法

 文件权限【读或写】 
 用户权限【file】 
 可操作路径【secure_file_priv】
load data infile 'C:\\Users\\user\\Desktop\\1.txt' into table user;

3. select sql outfile

 select '<?php phpinfo();?>' into outfile "C:\\Users\\user\\Desktop\\2.txt";

在桌面发现2.txt 写入成功

posted @ 2019-08-18 17:21  reuodut  阅读(393)  评论(0编辑  收藏  举报