MySQL系統表的利用姿勢 淺探

2021-09-28 12:49:27 字數 4360 閱讀 1917

搜書

許可權要求:

確保具備檔案匯入匯出許可權後即可進行檔案讀寫操作~~~

讀寫檔案:

資料庫表讀取檔案中的內容並儲存~

load_file:

load_file();
load_file在指定的目錄下建立檔案

首先我們需要在/var/lib/mysql-files/建立乙個檔案user.txt

$ vi /var/lib/mysql-files/user.txt

user.txt:

hello,world!

create table file(

id int not null auto_increment primary key,

file_url text

)engine=innodb default charset=utf8; -- 建立表file

insert into file(file_url) values (load_file('/var/lib/mysql-files/user.txt'));

mysql> select * from file;

+----+---------------+

| id | file_url |

+----+---------------+

| 1 | null |

| 2 | hello,world! |

+----+---------------+

2 rows in set (0.00 sec)

檔案中的資料內容就這樣寫入了資料表中!

load data infile:

load data infile '/var/lib/mysql-files/name.txt' into table file(file_url);
mysql> mysql> select * from file;

+----+---------------+

| id | file_url |

+----+---------------+

| 1 | null |

| 2 | hello,world! |

| 3 | hello,world! |

+----+---------------+

3 rows in set (0.00 sec)

注入利用:

我們可以通過前期的滲透手段和分析得知目標**某處存在sql注入漏洞;於是我們就可以利用sql的檔案讀取的特性來讀取目標系統中的某個檔案的內容

mysql在剛剛初始化後,預設有三個系統預設庫:

mysql> show databases;

+--------------------+

| database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

這些事mysql資料庫自帶的三個基本的系統庫

information_schema:

其中儲存有mysql所維護的所有資料庫資訊,包括庫名、表名、表列、許可權……等資訊

performance_schema:

用於收集資料庫伺服器的效能引數

mysql:s

保留mysql的賬戶資訊、許可權、儲存過程、event、時區等配置資訊

information_schema庫:

information_schema 庫通常儲存由資料庫的元資料:

​ 資料庫名,表名,列的屬性、型別、訪問許可權等等……

schemata表:庫資訊

提供了當前mysql所有庫的資訊,show databases;的結果就是據此而顯示~

tables表:表資訊

information_schema.tables表中提供了表的詳細資訊

select 《列名》 from information_schema.tables;
table表中主要記錄了資料庫中所有表的元資料,例如表名、型別、引擎……

在滲透過程中,如果我們掌握到這張表就可以掌握資料庫的大概的表

columns表:字段資訊

information_schema.columns表中提供了表中字段資訊

select column_name,data_type,is_nullable,column_default 

from information_schema.columns

where table_name = 'user';

查詢user表中的欄位名資訊

statistics表:索引資訊

information_statistics表中提供表的索引資訊內容

triggers表:觸發器資訊

views表:檢視資訊

user_privleges表:使用者許可權表

資訊源自於mysql.user授權表;裡面儲存著資料庫每個賬戶具備的許可權資訊

schema_privleges表:方案(庫)許可權表

資訊源自於mysql.db授權表,儲存著資料庫的許可權的資訊

table_privleges表:表許可權表

資訊源自於mysql.tables_prive授權表,儲存所有表資訊的許可權

columns_privleges表:列許可權表

資訊源自於mysql.columns_prives授權表,儲存表列的許可權資訊

charcter_sets表:字符集表

提供mysql所有相關的字符集資訊

使用系統表注入

*在sql注入中union聯合注入是最為常見的

普遍的情況下,使用union語句實現聯合注入(回顯注入)……

' union
現在簡單的舉例幾條sql語句實現核心的條件查詢

mysql注入查詢sql:

查當前 庫名:

select 1 , database();
查庫 sql語句:
select schema_nam from  information_schema.schemata;
查表 sql語句:
select table_name from information_schema.tables where table_schema = "";
查列(字段) sql語句:
select columns_name from information_schema.columns where table_name = "";
順帶一提~sql盲注上面說的sql注入是基於頁面有「回顯」的注入(回顯注入

如果頁面沒有回顯,那麼就需要進行「盲注入」

獲取管理員hash:

破解hash:

**成功解出密碼……^_^!**

mysql 表授權 MySQL授權系統的五個表

mysql伺服器的特點之一是,它在控制每個使用者行為方面提供了極大的靈活性。例如,我們既可以限制使用者訪問整個資料庫,也可以限制使用者訪問資料庫中特定的表,或者禁止訪問特定表中的特定列。由此看出mysql伺服器在使用者授權方面的靈活性。本文將向大家詳細介紹mysql伺服器是如何處理使用者許可權的授與...

MySQL授權系統的五個表

mysql授權系統是由資料庫中的五個表來實現,下面就為您詳細介紹這五個和mysql授權系統相關的表,如果您感興趣的話,不妨一看。mysql伺服器的特點之一是,它在控制每個使用者行為方面提供了極大的靈活性。例如,我們既可以限制使用者訪問整個資料庫,也可以限制使用者訪問數 據庫中特定的表,或者禁止訪問特...

利用Oracle外部表監控檔案系統的空間使用率

概述 利用shell指令碼獲取檔案系統空間利用率資訊並儲存到乙個檔案中,再利用oracle外部表讀取此檔案。1.首先利用df命令得到規範的空間使用率資訊並儲存到乙個檔案中 建立乙個檔案 home oracle df.sh su oracle touch home oracle df.sh chmod...