1. 靶场概述与核心价值
SQLi-Labs 是一个专为网络安全学习者设计的开源 SQL 注入实验平台。这个靶场环境包含了从基础到高级的 65 种不同难度等级的 SQL 注入漏洞场景,采用 PHP+MySQL 技术栈构建,完美模拟了真实 Web 应用中的数据库安全缺陷。
我在渗透测试教学中使用这个靶场已有五年时间,最大的感受是:它用阶梯式的漏洞设计,让学习者能像打游戏通关一样逐步掌握 SQL 注入技术。从最简单的报错注入到复杂的盲注、堆叠查询,每个关卡都对应着实际渗透测试中可能遇到的特定场景。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境搭建与配置详解
2.1 基础环境准备
靶场运行需要 LAMP/WAMP 环境:
- PHP 5.4+/7.x(需关闭魔术引号)
- MySQL 5.5+
- Apache/Nginx
重要提示:务必在虚拟机或隔离环境中部署,切勿在公网服务器直接安装
配置步骤:
- 从 GitHub 克隆项目到 web 根目录
- 修改
sql-connections/db-creds.inc中的数据库凭证 - 访问
setup-db.php初始化数据库 - 通过
index.html进入关卡选择界面
2.2 常见配置问题解决
我遇到最多的三个安装问题:
- 数据库连接失败:检查 MySQL 服务是否启用,确保
db-creds.inc中的端口号与 MySQL 实际端口一致 - 关卡无法初始化:删除
security.sql后重新执行 setup-db.php - PHP 版本兼容问题:若使用 PHP7+ 需注释掉
mysql_相关函数,改用mysqli_
3. 核心漏洞类型解析
3.1 基础注入类型
Less-1:GET 型字符注入
sql复制-- 经典闭合方式
id=1' and 1=1 --+
这个关卡演示了未过滤单引号导致的注入,通过 --+ 注释掉后续查询是解题关键。
Less-5:布尔盲注
python复制# 典型盲注检测脚本片段
if "You are in" in response.text:
return True
需要逐字符爆破信息,推荐使用 substr()
