SQLi-Labs 安装

1. 前言

我们在刚学习 SQL 注入的时候,往往都需要一个能 SQL 注入的网站进行 SQL 注入学习。如果直接去网上寻找存在 SQL 注入的网站对新手来说有些难度,因此我们一般都是在本地搭建一个能 SQL 注入测试的网站。

这里就来讲解一下 SQLi-Labs 的下载,安装,搭建教程。

注意: PHP 版本一定要设置成 PHP5 以上,PHP7 以下,PHP5 以上才有 information_schema 库,PHP7 之后的 mysql_ 都改成了 mysqli_** 了,所以用其他版本的 PHP 可能会出错。

2. SQLi-Labs

2.1 SQLi-Labs 是什么

SQLi-Labs 是一个专业的 SQL 注入练习平台,它适用于 GET 和 POST 等多场景的注入。

2.2 SQLi-Labs 注入场景

  1. 基于错误的注入(Union Select)
  • 字符串
  • 整数
  1. 基于误差的注入(双查询注入)
  2. 盲注入
  • 基于 Boolean 数据类型注入
  • 基于时间注入
  1. 更新查询注入(update )
  2. 插入查询注入(insert )
  3. Header 头部注入
  • 基于 Referer 注入
  • 基于 UserAgent 注入
  • 基于 cookie 注入
  1. 二阶注入,也可叫二次注入
  2. 绕过 WAF
  • 绕过黑名单\过滤器\剥离\注释剥离 OR&AND 剥离空格和注释剥离 UNION 和 SELECT
  • 隐瞒不匹配
  1. 绕过 addslashes() 函数
  2. 绕过 mysql_real_escape_string() 函数(在特殊条件下)
  3. 堆叠注入(堆查询注入)
  4. 二级通道提取

3. SQLi-Labs 下载

在下载源码前我们首先需要知道自己的 PHP 是什么版本:

下图是 php5.x 版本源码

在这里插入图片描述

4. SQLi-Labs 安装

4.1 Windows 环境安装

环境:Windows 10 + PHP 5.45 + MySQL 5.5.53

由于 SQLi-Labs 需要 PHP+MySQL 的环境,我们使用的是 phpStudy 这个软件。

4.1.1 解压

首先我们将刚才下载的源码压缩包解压到 phpStudy 的网站根目录下,如我的:C:\phpStudy\PHPTutorial\WWW\sqli-labs-master(为了方便访问我将目录更名为 sqli)

4.1.2 修改配置文件

修改 \sqli\sql-connections 目录下的 db-creds.inc 文件内容,将数据库默认的信息修改为自己数据库的信息

<?php

//give your mysql connection username n password
$dbuser ='root';
$dbpass ='';
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";

主要是修改 dbpass 的内容,部分 linux 下默认为空,phpStudy 的 Windows 版中默认为 root,如果使用其他环境则根据具体环境修改即可。

4.1.3 安装

打开浏览器访问「http://127.0.0.1/sqli/」并点击「Setup/reset Database for labs」来初始化创建数据库

在这里插入图片描述
在这里插入图片描述

4.1.4 访问

在浏览器打开 http://127.0.0.1/sqli/ 就看到 SQLi-Labs 的内容了,分为基础 SQL 注入、高级 SQL 注入、SQL 堆叠注入、挑战四个部份,总共约 75 个 SQL 注入漏洞。
在这里插入图片描述

4.2 Linux 环境安装

环境:Ubuntu 18.04 + PHP 7.2.24 + MySQL 5.7.30

所以需要安装 LAMP 环境,可以查看 Ubuntu 18.04 搭建 Lamp 环境。

4.2.1 下载源码

根据自己服务器上 php 的版本下载相应的源码,我这里是 php7 的环境。

sudo apt-get install git
sudo git clone https://github.com/skyblueee/sqli-labs-php7 /var/www/html/sqli-labs

4.2.2 修改配置文件

下载完成后进入 /var/www/html/sqli-labs 文件夹,找到 sql-connections/db-creds.inc 文件并修改其中的内容为我们的数据库用户名和密码。

<?php
//give your mysql connection username n password
$dbuser ='root';         //修改成你数据库的用户名
$dbpass ='';             //修改成你数据库的密码
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";
?>

4.2.3 安装

修改完成后打开浏览器访访问 ip/sqli-labs,点击 Setup/reset Database for labs 进行安装
在这里插入图片描述

如果遇到以下情况,多半是因为配置文件的问题,Linux 默认没有密码,所以需要设置一下 MySQL 的密码。
在这里插入图片描述

看到以下页面说明安装成功。
在这里插入图片描述

4.3 Docker 环境安装

这里我使用的是 Docker version 19.03.6

4.3.1 搜索镜像

首先需要搜索镜像

docker search sqli-labs

4.3.2 拉取镜像

这里我选择 acgpiano

docker pull acgpiano/sqli-labs

4.3.3 创建容器

创建一个新的容器并运行,这里的名字 sqli-labs 和端口 9999 大家可以自行修改

docker run -dt --name sqli-labs -p 9999:80 --rm  acgpiano/sqli-labs

4.3.4 安装

访问 ip:port,同样的点击 Setup/reset Database for labs 初始化创建数据库,然后再次访问点击下面的题目即可。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ssjjtt1997/article/details/117233500
今日推荐