记录mysql文件读取时secure_file_priv =问题

转载:https://www.cnblogs.com/c1e4r/articles/8618692.html

前提

  进行mysql文件读取时需满足两个条件

1.在拥有file权限的前提下

2.secure_file_priv不为NULL

情景

进行mysql文件读取时,报错

主要原因:未开启权限且未全局设置secure_file_priv =

解决办法:

  将mysql的配置文件my.ini [mysqld] 中secure_file_priv=“xxxx” 注释 或者 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选项。

此时重启mysql后,查看secure_file_priv全局变量

mysql> show global variables like "secure_file_priv";
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv |       |
+------------------+-------+
1 row in set (0.00 sec)

进行文件读取

mysql> select load_file('d:\\www.txt');
+--------------------------+
| load_file('d:\\www.txt') |
+--------------------------+
| x                        |
+--------------------------+
1 row in set (0.00 sec)

进行webshell写入

mysql> select '<?php phpinfo() ?>' into outfile "C:\\b.php";
Query OK, 1 row affected (0.00 sec)

mysql> select load_file('c:\\b.php');
+------------------------+
| load_file('c:\\b.php') |
+------------------------+
| <?php phpinfo() ?>
    |
+------------------------+
1 row in set (0.00 sec)

 

 

 

 

 

 

 

 
posted @ 2022-08-07 11:06  mdgdscy  阅读(1210)  评论(0)    收藏  举报