mysql數據庫在滲透過程中能夠使用的功能還是比較多的,除了讀取數據之外,還可以進行對文件進行讀寫(但前提是權限足夠)
總結下mysql在不同版本讀取文件方法大致有這3個:
1.load_file()
2.load data infile()
3.system cat
load_file()和load data infile讀取文件的方法為:新建一個表,讀取文件為字符串形式插入表中,然后讀出表中數據。
但是通常情況下有兩個前提:
1.在擁有file權限的前提下
2.secure_file_priv不為NULL
secure_file_priv的值可以在這樣查看

在mysql 5.6.34版本以后 secure_file_priv的值默認為NULL。可以通過以下方式修改
windows下:
修改mysql.ini 文件,在[mysqld] 下添加條目: secure_file_priv =
保存,重啟mysql。
Linux下:
在/etc/my.cnf的[mysqld]下面添加local-infile=0選項。
1.load_file()
首先我在/tmp目錄下創建一個文檔

運行mysql
sql命令如下:
1 create table user(cmd text); 2 insert into user(cmd) values (load_file('/tmp/1.txt')); 3 select * from user;

2.load data infile
其實load data infile和load_file()用法上沒有什么區別,只是在注入過程中,往往會過濾掉load_file()這個函數,但是仍然有load data infile可以使用。
1 load data infile '/tmp/1.txt' into table user;

3.system cat
在mysql版本為5.x時,除了可以使用上兩種方法外,還可以使用系統命令直接讀取文件

注意:
1.此方法只能在本地讀取,遠程連接mysql時無法使用system。
2. 無法越權讀取。
