记录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 @   mdgdscy  阅读(1152)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示