SQL 注入靶场搭建 (SQLi-LABS)
环境要求
- 操作系统: Windows 10/11
- 集成环境: PHPStudy Pro
- 靶场: SQLi-LABS
搭建步骤
1. 下载并解压 SQLi-LABS
SQLi-LABS 可以从 GitHub 下载:
官方地址:
https://github.com/Audi-1/sqli-labs
下载方式:
– 访问上面的 GitHub 地址
– 点击绿色的 Code 按钮
– 选择 Download ZIP
– 解压到 D:\\phpstudy_pro\\WWW\\ 目录
cd D:\\phpstudy_pro\\WWW
git clone https://github.com/Audi-1/sqli-labs.git sqli-labs-master
下载后的文件名:
- ZIP 下载会得到 sqli-labs-master.zip
- 解压后是 sqli-labs-master 文件夹
将 sqli-labs-master 压缩包解压到 PHPStudy 的 WWW 目录:
D:\\phpstudy_pro\\WWW\\sqli-labs-master\\
2. 配置数据库连接
打开配置文件:
D:\\phpstudy_pro\\WWW\\sqli-labs-master\\sql-connections\\db-creds.inc
修改数据库密码:
<?php
$dbuser = 'root';
$dbpass = '你的数据库密码'; // 修改这里
$dbname = 'security';
$host = 'localhost';
?>
保存文件 (Ctrl+S)。
3. 配置 PHP 版本
选择 PHP 版本:
- 打开 PHPStudy 管理面板
- 为 localhost 网站选择 PHP 5.2.17 nts
- 注意: SQLi-LABS 不支持过高的 PHP 版本
4. 修改 PHP 配置
打开 php.ini:
D:\\phpstudy_pro\\Extensions\\php\\php-5.2.17\\php.ini
修改魔术引号配置:
- 搜索 (Ctrl+F): magic_quotes_gpc
- 将 magic_quotes_gpc = On 改为 magic_quotes_gpc = Off
- 保存文件 (Ctrl+S)
为什么要关闭:
- magic_quotes_gpc = On 会自动转义单引号等特殊字符
- 转义后无法演示 SQL 注入漏洞
- 关闭后才能进行注入测试
5. 重启 PHPStudy
修改配置后,重启 Apache 使配置生效。
6. 初始化数据库
访问地址:
http://localhost/sqli-labs-master/
点击 “Setup/reset Database for labs” 初始化数据库。
成功标志:
Database created successfully
7. 显示 SQL 语句(可选 – 方便调试)
为了更直观地看到后端执行的 SQL 语句,可以修改源码:
打开文件:
D:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-1\\index.php
在适当位置添加:
echo "SQL语句:".$sql."<br>";
添加位置示例:
// 原代码
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
// 在查询前添加
echo "SQL语句:".$sql."<br>"; // 添加这行
// 执行查询
$result=mysql_query($sql);
保存后刷新页面,就能看到实际执行的 SQL 语句。
验证安装
测试 Less-1
访问:
http://localhost/sqli-labs-master/Less-1/?id=1
正常显示:
Your Login name: Dumb
Your Password: Dumb
测试注入:
http://localhost/sqli-labs-master/Less-1/?id=1'
应该报错:
You have an error in your SQL syntax
如果出现以上结果,说明靶场搭建成功!
常见问题
Q1: 访问页面空白或 500 错误
解决:
- 检查 PHP 版本是否选择了 5.2.17
- 检查 Apache 是否正常启动
- 查看 PHPStudy 错误日志
Q2: 无法连接数据库
解决:
- 确认 MySQL 已启动
- 检查 db-creds.inc 中的密码是否正确
- 尝试用 phpMyAdmin 登录验证密码
Q3: Setup Database 按钮无反应
解决:
- 检查 MySQL 用户权限
- 确保 root 用户有创建数据库的权限
- 查看浏览器控制台是否有 JS 错误
Q4: 添加 echo 后页面报错
解决:
- 确保添加在 SQL 查询语句定义之后
- 检查 PHP 语法是否正确(分号、引号)
- 查看 Apache 错误日志
Q5: magic_quotes_gpc 找不到
解决:
- PHP 5.4+ 已移除该选项,无需配置
- 如果使用更高版本 PHP,可能导致部分关卡无法演示
- 建议使用 PHP 5.2.17 或 5.3.x
安全提醒
- 仅用于学习: 本靶场仅用于学习 SQL 注入原理和防御方法
- 不要部署到公网: SQLi-LABS 存在大量漏洞,切勿部署到互联网
- 本地测试: 仅在本地环境或隔离的虚拟机中使用
- 及时关闭: 学习完毕后及时关闭 PHPStudy 服务
日期: 2026-07
环境: Windows 11 + PHPStudy Pro + SQLi-LABS
参考资料: SQLi-LABS 官方文档
声明: 本文仅用于网络安全学习和研究,请勿用于非法用途。


