mysql几种读取文件方法的使用

mysql数据库在渗透过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(但前提是权限足够)

 

总结下mysql在不同版本读取文件方法大致有这3个:

1.load_file()

2.load data infile()

3.system cat

 

load_file()和load data infile读取文件的方法为:新建一个表,读取文件为字符串形式插入表中,然后读出表中数据。

但是通常情况下有两个前提:

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

2.secure_file_priv不为NULL

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选项。

 

1.load_file()

首先我在/tmp目录下创建一个文档

运行mysql

sql命令如下:

1 create table user(cmd text);
2 insert into user(cmd) values (load_file('/tmp/1.txt'));
3 select * from user;

 

 

2.load data infile


其实load data infile和load_file()用法上没有什么区别,只是在注入过程中,往往会过滤掉load_file()这个函数,但是仍然有load data infile可以使用。

1 load data infile '/tmp/1.txt' into table user;

 

3.system cat


在mysql版本为5.x时,除了可以使用上两种方法外,还可以使用系统命令直接读取文件

 

 注意: 

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

2. 无法越权读取。

 

 

 

 

 

 

posted @ 2018-03-21 18:10  c1e4r  阅读(30356)  评论(1编辑  收藏  举报