sqli-labs练习(七)-----GET-Dump into outfile-String

sqli-labs练习(七)-----GET-Dump into outfile-String_第1张图片

根据提示,输入id参数1
sqli-labs练习(七)-----GET-Dump into outfile-String_第2张图片
输入1'出现报错信息,可是并没有错误的描述信息
sqli-labs练习(七)-----GET-Dump into outfile-String_第3张图片
输入1",返回正常
sqli-labs练习(七)-----GET-Dump into outfile-String_第4张图片
这里和前面基本一样,只有两种回显结果,但是唯一的区别就是错误回显并没有详细的错误描述。这下不好办了,怎么才能从数据库得到我们想要的数据呢???


注意返回正常时的回显语句You are in.... Use outfile......可以看到,这里给出了提示Use outfile......敲黑板!!!这就是出路啊。

关于mysql 的outfile的用法及说明,可以看这篇博文https://blog.csdn.net/jcy1009015337/article/details/53038104
简单的说,就是用该方法可以将查询到的结果输出到文件中。这就很美好了,因为在前台无法输出我们想得到的数据,通过该方法,那么我们仍然可以得到查询结果。

构造语句,输入
1')) union select * into outfile 'D://data.txt' from users%23
报错,,,,在D盘下也并没有发现data.txt文件
sqli-labs练习(七)-----GET-Dump into outfile-String_第5张图片
查找原因,发现是mysql在配置文件中限制了导入导出的路径,没办法,要想达到我们的目的,就要知道这个路径,那么如何获取这个路径呢?

  • @@datadir数据库存储路径
  • @@basedir mysql安装路径
    由于在第七节中无法输出信息,所以我们在前几节中构造语句来输出这两个信息,比如借助第一节
    0' union select 1,@@datadir,@@basedir%23
    sqli-labs练习(七)-----GET-Dump into outfile-String_第6张图片

构造以下语句上传一句话木马,
1')) union select 1,2,'' into outfile 'e:\\wamp64\\tmp\\data.php'%23
sqli-labs练习(七)-----GET-Dump into outfile-String_第7张图片
虽然有报错,但是仍然生成了data.php文件在e:\\wamp64\\tmp\\
这里写图片描述
用菜刀连接
sqli-labs练习(七)-----GET-Dump into outfile-String_第8张图片

你可能感兴趣的:(sql注入)