1. SQL注入实战环境搭建指南
最近在整理Web安全实验环境时,发现SQLi-Labs这个经典靶场对理解SQL注入原理特别有帮助。这个用PHP+MySQL搭建的漏洞实验平台,包含了从基础到高级的65种注入场景,比单纯看理论文档直观多了。下面记录下我在本地搭建过程以及通关时总结的实战技巧。
重要提示:所有实验务必在本地虚拟环境进行,禁止对任何线上系统进行测试
1.1 环境准备要点
我的测试环境采用Windows 10 + XAMPP 3.3.0组合,相比单独配置Apache和MySQL,这种集成环境省去了很多依赖问题。需要注意几个关键点:
- PHP版本建议5.4-7.0之间,新版PHP可能不兼容靶场部分代码
- MySQL需要开启错误回显功能,这是学习注入原理的关键
- 下载靶场代码时建议用原版仓库(github.com/Audi-1/sqli-labs),有些修改版会修复漏洞
安装完成后遇到最多的问题是数据库连接配置。靶场根目录的sql-connections/db-creds.inc文件需要修改为:
php复制<?php
$dbuser = 'root';
$dbpass = ''; // XAMPP默认空密码
$dbname = 'security';
$host = 'localhost';
?>
1.2 数据库初始化陷阱
执行setup-db.php时常见两个问题:
- 数据库连接失败:检查MySQL服务是否启动,密码是否匹配
- 表创建失败:手动创建名为
security的数据库后重试
初始化完成后会生成以下关键表:
- emails:存储模拟用户邮箱
- referers:记录HTTP Referer
- uagents:保存User-Agent信息
- users:核心测试表,包含id、username、password字段
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础注入类型实战解析
2.1 数字型注入(Less-1)
这是最经典的GET参数注入场景,URL结构为:
code复制http://localhost/Less-1/?id=1
构造注入语句时要注意闭合原SQL的引号和括号:
sql复制1' and 1=1 --+
这条语句能正常返回说明存在漏洞。实际渗透时会逐步
