CTF学习笔记3:mysql读文件与写文件

一、前提条件

1.对web目录具有读写权限
2.知道文件绝对路径
3.能够使用联合查询

(一)查看导入导出权限配置

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

(二)查看当前用户

mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.02 sec)

(三)查看当前用户的文件读写权限

mysql> select file_priv from mysql.user where user='root' and host='localhost';
+-----------+
| file_priv |
+-----------+
| Y         |
+-----------+
1 row in set (0.04 sec)

(四)为实验修改配置重启服务

[root@centos ~]# vi /etc/my.cnf
#在mysqld段加入以下第3行内容
#secure_file_prive=null    #限制mysqld 不允许导入导出#默认没有配置即为该项效果
#secure_file_priv=/tmp/    #限制mysqld的导入导出只能发生在/tmp/目录下
secure_file_priv=''        #不对mysqld 的导入导出做限制
[root@centos ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL.. SUCCESS!

(五)检查配置效果

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

二、读写文件测试

(一)生成测试文件

[root@centos ~]# touch /flag
[root@centos ~]# echo flag{test_flag} > /flag
[root@centos ~]# cat /flag
flag{test_flag}

(二)读取文件

mysql> select load_file('/flag');
+--------------------+
| load_file('/flag') |
+--------------------+
| flag{test_flag}    |
+--------------------+
1 row in set (0.00 sec)

(三)写入文件

mysql> select 'newflag{test_flag_new}' into outfile '/tmp/newflag';
Query OK, 1 row affected (0.00 sec)

outfile与dumpfile的区别:
1.dumpfile适用于二进制文件,它会将目标文件吸入同一行内
2.outfile则更适用于文本文件

(四)检查写入效果

[root@centos ~]# cat /tmp/newflag
newflag{test_flag_new}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值