sqli-labs靶场安装与使用指导教程(3种方法:通用版、php7版、Docker版)

目录

一、SQLI-LABS靶场

1、核心特点

2、关卡难度

二、源码安装法

1、开启Web服务和数据库服务

2、靶场源码下载

(1)通用版本

(2)PHP7版本

3、部署sqli-labs靶场

(1)确认网站根目录位置

(2)部署靶场

4、修改数据库配置

5、配置PHP版本

(1)通用sqli-labs靶场

(2)sqli-labs7靶场

6、sqli-labs靶场安装

7、访问sqli-labs靶场

三、Docker安装法

1、拉取镜像

2、运行容器

3、访问靶场


本文讲解sqli-labs靶场的安装方法,包括源码安装法(普通版本、php7版本)和Docker法的完整安装方法。

一、SQLI-LABS靶场

SQLI-LABS 是一个专为学习和练习 SQL 注入 (SQL Injection)技术而设计的开源靶场平台。由印度安全研究员 Audi Singh 开发。它提供了一个合法且安全的环境,让网络安全爱好者、学生和安全专业人员能够从基础到高级,系统地理解和掌握各种类型的 SQL 注入攻击手法。

1、核心特点

SQLi-Labs 是一个专注于 SQL 注入学习与实践的开源靶场项目,其核心特点如下表所示。

特点类别 具体说明
场景全面 覆盖几乎所有常见 SQL 注入类型,包括: - 基于错误的注入(Error-Based SQLi) - 布尔盲注(Boolean-Based Blind SQLi) - 时间盲注(Time-Based Blind SQLi) - 联合查询注入(Union-Based SQLi) - 堆叠查询注入(Stacked Queries SQLi) - 二次注入、宽字节注入等特殊场景。
分级设计 按 "Lessons"(关卡)划分,难度循序渐进: - 基础关(如 Less-1):单引号闭合注入,适合入门。 - 进阶关(如 Less-5/9):盲注场景,需依赖报错或时间延迟判断逻辑。 - 高阶关(如 Less-23/31):过滤绕过、Cookie 注入等复杂场景。
多数据库支持 默认以 MySQL 为演示环境,支持通过配置扩展至 SQL Server、Oracle 等主流数据库,适配不同数据库的注入特性。
开源免费 项目完全开源,代码托管于 GitHub(链接),可自由下载、部署、修改源码
可扩展性 支持自定义修改数据库结构、PHP 代码逻辑,可用于验证防御措施(如参数化查询、输入过滤)的有效性,或扩展新的场景。

2、关卡难度

SQLI-LABS 的Lessons 1-65 的挑战路径可以概括为:从显错注入到盲注,从GET到POST,从普通查询到堆叠查询,同时不断融入各种过滤绕过技巧。难度呈阶梯式上升,具体如下表所示。

关卡范围 主要注入类型 核心考点与特点 难度
1-10 GET - 错误型/联合查询 字符型注入基础,单引号闭合,联合查询 ★☆☆☆☆
11-22 POST - 错误型/其他 POST请求注入,HTTP头注入,UPDATE注入 ★★☆☆☆
23-25 GET - 过滤绕过 注释符被过滤,需要引号闭合 ★★☆☆☆
26-28 GET - 过滤绕过 空格和关键字被过滤,需要替代符 ★★★☆☆
38-45 GET - 堆叠查询 执行多语句,功能强大 ★★★★☆
54-65 盲注 (Boolean/Time) 无回显,靠布尔逻辑或时间延迟猜解 ★★★★★

二、源码安装法

1、开启Web服务和数据库服务

在开始安装之前,您的系统必须已经具备以下两个基础环境:Web 服务器数据库。本文以PHPStudy为例,首先打开phpstudy软件,启动Apache和MySQL,如下所示。

2、靶场源码下载

(1)通用版本

如果计划使用标准的sqli-labs靶场, 具体步骤如下所示。

(2)PHP7版本

如果计划使用php7版本的sqli-labs靶场, 那么需要下载指定的版本,具体步骤如下所示。

3、部署sqli-labs靶场

(1)确认网站根目录位置

注意,这里如果不知道如何查找网址的根目录。可以打开小皮工具,点击左侧的网站工具栏,进入网站的页面,点击管理-打开网站的根目录,如下图所示:(我的phpstudy的安装位置在D盘的phpstudy_pro目录下,网站根目录就在软件安装目录的WWW目录下,以我的安装目录为例,即D:\phpstudy_pro\WWW\)

(2)部署靶场

单层解压刚刚下载的 压缩包文件(注意选择解压到当前文件夹),如下图所示。

将解压后的文件夹剪切或复制到网站根目录下,如下图所示。以我的环境为例,web服务的根目录为D:\phpstudy_pro\WWW\,那么sqli-labs靶场的目录即为D:\phpstudy_pro\WWW\sqli-labs\。

4、修改数据库配置

修改 sqli-labs/sql-connections 目录下的 db-creds.inc 文件,将其中数据库的部分进行如下图的修改,具体操作步骤如下图:

使用记事本或其他文本编辑软件打开,并确保数据库用户名、密码与真实环境的 MySQL 设置一致,修改后保存并关闭文件。

以我的环境为例,我使用的是PHPStudy中MySQL环境,可以在小皮工具-数据库(左侧红框)进入到数据库配置界面,然后将鼠标放到密码对应的密文处,明文密码就自动显示出来,我这里用户名root对应的密码是root,如上文件配置需要修改为root和root,说明这个修改是正确的。

5、配置PHP版本

(1)通用sqli-labs靶场

对于通用sqli-labs靶场,点击网站-管理-选择php 版本(选择php 版本不能过高7.xx 版本会有兼容性问题),这里我选择5.X的版本, 如下图所示。

(2)sqli-labs7靶场

对于sqli-labs7靶场,点击网站-管理-选择php 版本(选择php 版本为7.xx 版本),这里我选择7.3.30的版本, 如下图所示。

6、sqli-labs靶场安装

通过浏览器访问 sqli-labs 文件夹以加载 index.html。打开浏览器访问http://127.0.0.1/sqli-labs即可访问sqli-labs,如下图所示。

点击setup/reset database for labs创建数据库,如下图所示。

单击后自动创建数据库,出现下图说明数据库创建成功

7、访问sqli-labs靶场

打开浏览器访问http://127.0.0.1/sqli-labs即可访问安装好的sqli-labs靶场,如下图所示。此时实验准备就绪,点击对应的Page页并点击lesson 编号即可进入对应实验页面。

以Page1为例,点击Page1如上图红框内容,即进入到下图页面,此时点击less1进入第一关关卡。

此时进入到第一关,注意到URL变为http://127.0.0.1/sqli-labs/Less-1/

在地址栏后输入?id=2 显示数据库中的具体信息,如下图所示。

三、Docker安装法

1、拉取镜像

在终端中执行以下命令,从 Docker Hub 拉取现成的 sqli-labs 镜像。

复制代码
docker pull acgpiano/sqli-labs

2、运行容器

拉取完成后,运行以下命令启动一个容器。

复制代码
docker run -dt --name sqli-labs -p 8083:80 --restart=always acgpiano/sqli-labs
  • -dt: 在后台运行容器并分配一个伪终端。

  • --name sqli-labs: 为容器起一个名字,方便管理。

  • -p 8083:80: 将宿主机的 8083端口 映射到容器的 80 端口(Web服务端口)。

  • --restart=always: 确保 Docker 服务重启时,这个容器也自动重启。

  • acgpiano/sqli-labs: 使用的镜像名。

3、访问靶场

打开浏览器,访问 http://localhost:8083http://虚拟机IP:8083 。就可以进入 sqli-labs 的首页。点击 Setup/reset Database for labs 链接来初始化数据库,具体可以参考二(6)(7)部分。相对于源码安装方法而言,Docker安装法省时省力,避免了所有环境配置的麻烦。

相关推荐
m0_7381207210 小时前
CTFshow系列——命令执行web53-56
前端·安全·web安全·网络安全·ctfshow
WayneJoon.H14 小时前
CTFSHOW | 其他篇题解(一)web396-web416
sql·安全·web安全·网络安全·php
cdprinter14 小时前
安全、高效、可靠的物理隔离网络安全专用设备———信刻光盘安全隔离与文件单向导入系统!
网络·安全·web安全
Neolock18 小时前
Linux应急响应一般思路(三)
linux·web安全·应急响应
独行soc1 天前
2025年渗透测试面试题总结-29(题目+回答)
web安全·职场和发展·渗透测试·单元测试·压力测试
上海云盾安全满满1 天前
网站被 DDoS 攻击的过程和应对方案
安全·web安全·ddos
witkey_ak98962 天前
网络安全转型书籍清单
安全·web安全
jieyu11192 天前
内网后渗透攻击--域控制器安全(1)
安全·web安全·内网渗透·域控制器安全
浩浩测试一下2 天前
06高级语言逻辑结构到汇编语言之逻辑结构转换 for (...; ...; ...)
汇编·数据结构·算法·安全·web安全·网络安全·安全架构