近来无事,重温了以前所学。
Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程,网上将sqli-labs大多安装在windows上,故梳理下在Ubuntu上安装的教程。Ubuntu版本RT。
安装sqli-labs之前,需先安装相应的php环境。
安装PHP环境
|
|
测试:
浏览器打开: http://localhost
, 出现Apache的界面,说明环境搭建成功。
默认目录:
Apache安装完成后的默认网站根目录是/var/www/html
。这个可以修改,也可以不修改。
若想修改可以按照以下步骤进行修改:sudo vim /etc/apache2/apache2.conf
将/var/www/
修改为/home/www
。sudo vim /etc/apache2/sites-available/000-default.conf
将DocumentRoot /var/www/html
的位置改为/home/www
即可。
重启Apache服务器:sudo service apache2 restart
安装sqli-labs
下载地址https://github.com/Audi-1/sqli-labs
我用的是git下载,需要先安装git。sudo apt-get install git
安装之后,使用git克隆即可。git clone https://github.com/Audi-1/sqli-labs.git
下载后,修改sql-connections
文件夹中的db-creds.inc
文件,填入mysql数据库的用户名和密码,并将文件夹放在网站根目录下,我放的位置是/var/www/html
可以看到我的用户名并不是root
,原因是创建了一个用户,创建用户的方法,请看这里
浏览器打开:http://localhost/sqli-labs
出现如下界面:
点开第一个链接,新建数据库,若出现如下界面,则说明成功!
如果只出现一行这个:
表明没有创建成功。
此时要进入到/var/www/html/sqli-labs/sql-connections
使用ls
命令可以看到此目录有setup-db.php
这个php文件和我们所点的第一个链接执行的php文件是一个。
此时在这个目录下, 单独运行这个php文件php setup-db.php
会发现运行报错
是在第29行,mysql_connect()
附近。
原因是从PHP5.0开始就不推荐使用mysql_connect()函数,到了PHP7.0则直接废弃了该函数,他的替代品是mysqli_connect()
用法是$con=mysqli_connect("localhost", "my_user", "my_password", "my_db");
所以我们要将setup-db.php
文件中的mysql_conect()
改为mysqli_connect()
除此之外,还要修改mysql_query()
参数为($con,$sql)
所以修改完后的就是mysqli_query($con,$sql)
修改完后重启下Apachesudo service apache2 restart
再次打开http://localhost/sqli-labs
点击第一个链接,就会出现成功的画面。
注:由于github上的sqli-labs是用php5写的,有很多地方与php7不兼容,所以建议安装php5来使用此环境。