本地mysql注入讀取配置文件 遇到的問題 簡單記錄一下。mysql
本地測試時,讀取文件發現不管怎樣都返回爲NULL。sql
>> select load_file('c:/xx/xx/xx/x.txt');segmentfault
緣由是mysql的secure_file_priv的新特性。測試
mysql新版本下 secure_file_priv字段:secure_file_priv參數是用來限制LOAD DATA,SELECT ...OUTFILE, and LOAD_FILE()傳到哪一個指定目錄的。字符串
ure_file_priv的值爲null,表示限制mysqld不容許導入/導出io
當secure_file_priv的值爲/tmp/,表示限制mysqld的導入|導出只能發生在/tmp/目錄下table
當secure_file_priv的值沒有具體值時,表示不對mysqld的導入|導出作限制。配置
資料地址: https://segmentfault.com/a/1190000009333563file
解決辦法:select
>> show global variables like '%secure%';
默認的爲NULL。
修改mysql.ini或my.ini文件,在[mysqld]下加入
secure_file_priv =
保存重啓mysql便可。
這裏注意一下,路徑中的斜槓是 / 而不是\。
load_file,後面的路徑能夠是單引號,0x,char轉換的字符串。
load_file 能夠在union中做爲一個字段來用。 如:union select 1,load_file('c:/boot.ini'),3,4 from tables等。
load_file 能夠在where字句中使用。如and lenth(load_file(0x*************))>1 (盲注)