今天继续给大家介绍渗透测试相关知识,本文主要内容是sqli_lab安装与使用时问题解决。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
我们在使用sqli_lab学习SQL注入漏洞时,为了搭建环境的方便,我们经常会选择使用phpstudy平台来快速搭建我们需要的数据库、Apache或Nginx以及PHP环境。但是,我们在使用新版本的phpstudy时,在安装和使用sqli_lab时会出现各种各样的问题,今天我们就来简单介绍我们经常会遇到的两个问题,并介绍解决办法。
一、PHP版本引发的错误
我们在开始尝试安装sqli_lab时,可能会出现如下报错:
Uncaught Error: Call to undefined function mysql_connect()
报错页面如下所示:
出现这种错误,主要原因是PHP版本太高,而sqli_lab开发时的一些函数已经在高版本的PHP里面不再支持,因此我们无法成功安装sqli_lab。
解决这一问题的手段就是降低PHP的版本,打开phpstudy的页面,选择网站,并点击管理,找到下拉菜单中的php版本,将php版本改为php5.X的版本即可。操作如下图所示:
如果在上述操作时,发现没有php5.X可以选择,就是因为没有安装相应的环境,我们可以在phpstudy的环境面板中,选择安装相应的php版本,相关操作如下图所示:
这样,我们在降低phpstudy环境的php版本后,sqli_lab就可以正常安装并使用了,如下所示:
二、魔术引号引发的错误
在上一步,尽管我们能够成功的安装sqli_lab,但是如果我们使用sqli_lab进行实验,则会发现实验不能成功。
我们在进行sqli_lab第一关的实验时,在sql语句拼接后、执行前,如果添加如下代码:
echo $sql
添加完成后的代码如下所示:
就可以在页面中输出$sql变量,从而帮助我们更方便的排查错误。修改完成后,我们在第一关输入id=1’,则页面回显如下所示:
从上图可以很明显的看出,我们输入的引号被进行了转义,因此我们无法进行SQL注入的进一步实验。
之所以出现这种现象,是因为PHP在配置时设置了魔术引号,打开PHP的配置文件php.ini(该文件应该在phpstudy安装目录下的extension子目录中),发现magic_quotes_gpc参数设置on,该文件如下图所示:
我们将上图中红线部分的magic_quotes_gpc参数修改为Off,重启Apache后再次尝试,发现结果如下所示:
从上图中可以看出,PHP不再对我们输入的单引号进行魔术符号转义了,我们也就可以进行正常的SQL注入渗透测试学习了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200