IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> mysql读写文件 -> 正文阅读

[PHP知识库]mysql读写文件

mysql读写文件

secure_file_priv参数

secure_file_priv为NULL,表示禁止限制操作
secure_file_priv为某一目录,表示只能操作该目录下的文件
secure_file_priv为空,表示不对读写文件进行限制

在mysql 5.6.34版本以后 secure_file_priv的值默认为NULL

show global variables like "secure%";

在这里插入图片描述

load_file()

可以直接查看

select load_file("E:/Desktop/2.txt");

在这里插入图片描述
也可以写进数据库中,然后看数据库中的内容

secure_file_priv为空

本机用的是php_study,所以修改my.ini中的配置,在[mysqld]条目下添加

secure_file_priv=

然后再查看,secure_file_priv修改为空
在这里插入图片描述
将文件写入数据库

insert into user(name) values (load_file('E:\\Desktop\\2.txt'));

在这里插入图片描述

secure_file_priv为NULL

如果secure_file_priv的值为NULL,那么就不能将文件写进数据库中
在这里插入图片描述

secure_file_priv为某一目录

secure_file_priv为特定目录

在这里插入图片描述

只能操作特定目录的文件,其余不能
在这里插入图片描述

load data infile

secure_file_priv为空

secure_file_priv值为空,load data infile 可以正常执行

load data infile 'E:\\Desktop\\2.txt' into table user;

在这里插入图片描述

secure_file_priv为NULL

但是如果我们将secure_file_priv的值改为NULL(也就是配置文件中没有secure_file_priv的信息)
在这里插入图片描述

secure_file_priv为某一目录

还是该目录下的文件可以操作,但是其他目录下的文件不能操作

绕过限制,加上local

使用local需要开启local_infile,改变量默认为ON
在这里插入图片描述

如果需要修改

set global local_infile = true;

或者修改配置文件,在[mysqld]下添加条目local_infile = 1

绕过

load data local infile 'D:\\1.txt' into table user;

运行结果
在这里插入图片描述

system echo/cat

在版本为5.x时,可以直接使用system cat 进行使用

写文件
在这里插入图片描述

注意:

  1. 此方法只能在本地读取,远程连接mysql时无法使用
  2. 无法越权读取

mysql写shell的方法

直接写文件

select "cmd" into outfile "E:/Desktop/3.txt";
select "cmd" into dumpfile "E:/Desktop/3.txt";

注意:

  1. 不能写入已经存在的文件中
  2. secure_file_priv的限制

结果
在这里插入图片描述

secure_file_priv存在限制的时候,不能使用
在这里插入图片描述

日志注入

首先要开启log日志,查看日志是否开启

show variables like "%general%";

在这里插入图片描述

开启日志,设置日志文件路径

 set global general_log = ON;
 set global general_log_file = "D:/2.txt";

查看日志,木马已经写进去了
在这里插入图片描述
整完之后,把日志关掉,路径改回原来的值

dumpfile和outfile的区别

大佬的解释

outfile函数可以导出多行数据,而dumpfile只能导出一行数据。
outfile函数在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式。

导出数据到文件的时候,可以指定一些参数
FIELDS ESCAPED BY 可以用来对指定的字符进行转义,
FIELDS [OPTIONALLY] ENCLOSED BY 用来对字段值进行包裹,
FIELDS TERMINATED BY 用来对字段值之间进行分割

注意:outfile后面不能接0x开头或者char转换以后的路径,load_file后面的路径既可以是单引号,也可以是0x、char转换的字符

参考文章

  1. Mysql 命令 load data infile 权限问题
  2. mysql文件读写
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 10:41:29  更:2022-04-23 10:41:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 21:11:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码