1前言
sqli-lab真的坑太多的了!!!配这个环境搞了整整三天!
坑1:
由于之前一个版本的sqli-lab对应的是php5,现在的版本对应的是php7,所以很可能造成你装上了之后打不开数据库。
坑2:
如果你装了php7,但是你装的是mysql7的话,恭喜你,你会发现到了sqli-lab的第六关的时候你就会出错,过不了!!!
坑3:
如果你装了mysql5,你会发现装好了mysql 之后打不开mysql
完美搭配
这里着重强调在Ubuntu18.04上安装sqli-lab的完美搭配是:Ubuntu18.04+apache2+php7+mysql5
这里的完美搭配的意思是你能够尽可能的避免一些坑,但是并不能代表你能避免所有的坑。
下面我们来开始配置处处坑的sqli-lab吧,首先我们需要安装apache、php、mysql(千万注意版本!!!!!!!)
step1:安装mysql5
首先我建议你们先把mysql安装上,再像其他博客一样安装,因为在ubuntu18.04上安装mysql5需要一顿操作,比较复杂,其他的apache什么的安装就比较简单,写在后面,通过全网的搜索这里我选了最简单的一种解决方式来解决mysql5sudo mysql -uroot -p
打不开数据库的问题。
(1)卸载电脑上存在的mysq并安装(因为我当时先下载了mysql7,所以先进行了卸载)
在ubuntu上安装mysql5
sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (!!!别忘了)
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
(2)安装mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
(3)检查mysql是否在运行
sudo netstat -tap | grep mysql
结果如下:
tcp 0 0 localhost.localdo:mysql *:* LISTEN
6030/mysqld
(4)若没有启动,则重启一下mysql
sudo /etc/init.d/mysql restart
但是坑就在这里来了!!!
使用sudo mysql -uroot -p
无法连接数据库,并报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
(5)此时应该到到etc/mysql 目录下,查看debian.cnf文件
sudo vim /etc/mysql/debian.cnf
然后就会看到这个文件中的内容如下:
host = localhost
user = debian-sys-maint
password = pjabc9ORmJklrmQS
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = pjabc9ORmJklrmQS
socket = /var/run/mysqld/mysqld.sock
我们可以看到用户名user
和密码password
,前面的问题是我们无法使用mysql -u root -p
打开数据库,所以在获得了用户名和密码以后,我们将命令改为我们自己的user
和password
,命令如下(你们一定要看自己的电脑的用户名和密码哦):
mysql -udebian-sys-maint -ppjabc9ORmJklrmQS
(6)修改用户名和密码
通过上面的用户名和密码我们就可以进入数据库了!但是我们此处将用户修改为root
use mysql;
update user set authentication_string=PASSWORD("自1234") where user='root';//将用户名root密码修改为1234
update user set plugin="mysql_native_password";
flush privileges;
quit;
(7)修改后,重启数据库服务,并打开数据库
/etc/init.d/mysql restart;
mysql -u root -p //登陆时候的密码就是刚刚设置的1234
是的!这样就解决了ubuntu18中mysql5无法的登录的问题!!!!
step2:安装apache2+php7
参考安装sqli-lab
(1)基本环境的安装
sudo apt-get install apache2 //下载apache
sudo apt-get install php7.2 //这里是7!!!!注意是7
//sudo apt-get install mysql-server //这一步不再需要了,因为我们已经安装了
sudo apt-get install libapache2-mod-php* //php与apache2关联
sudo apt-get install php-mysql
如果你的电脑之前用的是php5,此时需要把你的php5禁用
sudo a2dismod php5 //禁用php5
(2)apache2解析php环境设置
首先,打开文件apache2.conf
sudo nano /etc/apache2/apache2.conf
然后将下列信息写入文件最后
AddType application/x-httpd-php .php
DirectoryIndex index.php index.htm index.html
(3)重启apache和PHP
修改了之后重新启动一下apache和PHP,相当于平时安装了个什么东西,电脑需要重启一个意思哈!
sudo a2enmod php7.2
sudo systemctl restart apache2
(4)测试是否能够成功解析PHP文件和html文件
sudo nano /var/www/html/test.php
<?php
phpinfo();
?>
ctrl+x 保存
浏览器打开localhost/test.php
若出现PHP的信息则证明解析成功,test.html文件同理
step3:下载sqli-lab文件,并完成数据库信息修改
sqli-lab下载地址为:https://github.com/skyblueee/sqli-labs-php7
从名字就可以看出是PHP7的!!!!
解压之后放进文件夹/var/www/html/
中
然后我们就应该修改sqli-lab中的连接数据库的配置文件信息了,比如用户名还有密码等信息:
(文件夹sqli-labs就是我们刚才解压的文件夹的名称)
sudo vim /var/www/html/sqli-labs/sql-connections/db-creds.inc
将用户名dbuser
和密码dbpass
改成root
和1234
,也就是刚才我们在安装mysql创建的那个用户的用户名和密码,这个跟你创建的用户名和密码有关。
然后你就配置成功了!!!!!
在浏览器中输入网址:
localhost/sqli-labs/index.html
然后点击Setup/reset Database for labs
建立数据库,然后就可以做题啦!!!
经过整理全网所有解决办法,找出的最简单的解决方案,如有错误希望大家评论告诉我