记录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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!