MySQL读取和写入文件在ctf或者awd中,常用于读取flag或者写入一个一句话木马,通过特定函数将其写入
mysql中,如果要读写,还得看一个参数---"secure_file_priv" 该函数的主要作用就是控制MySQL的读取和写入 可以通过
select variables like "%secure_file_priv%";
查询当前是否可读写,比如下图,说明我的读写范围限制在G盘
如果尝试读取其他盘的数据,会返回NULL
secure_file_priv=NULL 时,不允许读取和写入文件 secure_file_priv=/var 时,允许读取和写入文件,但是读取写入范围限制在/var中 secure_file_priv= 时,允许任意读取和写入文件
无论时读取还是写入,都要知道网站的绝对路径,并且有绝对的权限
select into load_file('文件路径')
load data infile '文件路径' into table 表名
这个条语句适合过滤了load_file的第二种读取方式,这个主要是将其写入表之后,使用查询语句读出来
select '<?php phpinfo();?>' into outfile '文件路径';
同样的,如果在secure_file_priv的范围之外写文件,会报错。