一、前言

练 SQL 注入前,先把这三个问题弄明白,你就知道为什么要搭这个靶场,也能少走很多弯路。

1.1 什么是 SQLi-Labs?

简单说,它是专门练SQL 注入的 “漏洞题库”—— 里面有 70 多关,每关对应一种 SQL 注入场景(比如数字型注入、字符型注入、盲注),还自带测试数据(比如用户表、密码表)。它不像真实网站那样藏着掖着,漏洞点很明确,新手能一步步试出 “怎么输入代码让数据库返回想要的数据”,不用怕操作错了搞坏真实数据。

1.2 为什么要装 SQLi-Labs?

对新手来说,它是最 “友好” 的 SQL 注入练习工具,核心原因有两个:一是能落地实操:看书本学 “SQL 注入原理” 总觉得抽象,但在 SQLi-Labs 里,你输个?id=1' or 1=1 #就能看到数据库返回所有用户,这种 “立竿见影” 的效果,比背理论记得牢;二是难度循序渐进:从第一关的简单数字注入,到后面的盲注、宽字节注入,难度慢慢升,不会一上来就卡壳。我当初学注入时,就是靠它从 “看不懂 Payload” 到 “能自己写简单注入代码”。

1.3 装完能用来做什么?

最核心的用途就是练会 SQL 注入的核心技巧:比如怎么判断注入点(输'看会不会报错)、怎么查数据库名(用union select)、怎么提权查管理员密码;还能搭配 Burp Suite 练抓包改参数,模拟真实渗透中 “通过注入拿到靶机权限” 的过程。等把 70 多关都过一遍,再看真实网站的 SQL 注入漏洞,就不会觉得陌生了。

二、搭建sqli-labs靶场

2.1 环境准备

我用的是 Windows Server 2016 虚拟机,如果你还没装,翻我之前的文章(往期链接)跟着装就行,不难。另外得先装好小皮面板(小皮面板的安装教学:https://blog.csdn.net/zbywlaq/article/details/159432903),因为 SQLi-Labs 需要 Apache 跑网页、MySQL 存数据,小皮能一键搞定这些环境,不用手动配。

2.2 下载并放置 sqli-labs文件

下载链接:

https://pan.baidu.com/s/1EqB4WPuKvYZoZYUw_srdrg?pwd=1212  # 提取码:1212 

将下载的压缩包解压,得到 “sqli-labs” 文件夹;

把 “sqli-labs” 文件夹复制到小皮面板的网站根目录下,路径是你安装小皮的目录\phpstudy_pro\WWW(比如我装在 D 盘,路径就是D:\phpstudy_pro\WWW\DVWA)。

image-20251008154323389

2.3 进入靶场

确保你的小皮面板的Apache和Mysql是出于启动的状态

image-20251011120042666

这样就可以在浏览器输入你的url(127.0.0.1)+文件夹名(sqlilabs)称就可以看到首页了

http://127.0.0.1/sqlilabs/

image-20251008154307581

2.4 踩坑解决

点首页的 “Setup/reset Database for labs” 创建数据库时,大概率会遇到一个报错:它告诉你在setup-db.php中第29行有一个错误,错误在mysql_connect()这个函数

image-20251008155056762

那么就来看看在D:\phpstudy_pro\WWW\sqlilabs\sql-connections\setup-db.php文件中的第29行(记事本不方便看行,简单点,一行一行的往下数)就是这个函数

image-20251011102428254

mysql_connect() 是 PHP 中用于建立与 MySQL 数据库服务器连接的函数。它的主要作用是创建一个 PHP 脚本与 MySQL 数据库之间的网络连接,以便后续执行 SQL 查询、插入、更新等操作。

2.5 修改数据库密码

数据库错误,那就是数据库连接没有配置好,在当前目录找到这个文件db-creds.inc

image-20251008154624130

打开后可以看到这里有$dbuser和$dbpass数据库账号和密码的变量,我们需要修改它的值

image-20251008154738021

什么?你不知道数据库密码?

来到小皮面板,找到数据库这个导航,然后点击修改密码就行了(默认情况也就是刚安装小皮面板的情况下,root的密码是未知的,你需要修改它),这里我修改为123456

image-20251010104055163

2.6 报错验证

这时候再点 “Setup/reset Database for labs”,就能看到 “xxxx created successfully” 的提示,就会出现数据库创建成功的界面,

image-20251008155354235

2.7 靶场验证

返回sqlilabs的主页,进入第一关

image-20251011113152495

给了我们如下提示

Please input the ID as parameter with numeric value
# 请将该 ID 作为参数输入,其值应为数字形式。

image-20251011105420650

在浏览器地址栏后面加?id=1,变成http://127.0.0.1/sqli-labs/Less-1/?id=1,回车后就能看到从数据库里查出来的 “Dumb” 账号和密码 —— 这就说明靶场搭好了,接下来就能练 SQL 注入了(比如怎么查所有账号密码、怎么爆表,后面再讲通关技巧)。

image-20251011105407664

三、总结

其实搭 SQLi-Labs 不难,主要就是两个坑:文件别放错目录,还有把mysql_connect改成mysqli_connect。我当时自学的时候卡了半小时才发现函数的问题,现在把步骤写清楚,你跟着做,几分钟就能搞定,后面就能专心学习sql注入了。

四、🎯 网络安全学习资源推荐

觉得文章对你有帮助?想获取更多实战干货?

我们为你准备了一套 「从零到一的网络安全学习资料包」,包括:

  • 🔥 红队攻防实战手册 - 内网渗透、漏洞利用、权限提升
  • 📚 网络安全学习路线图 - 零基础入门到就业完整路径
  • 💼 最新网络安全面试题 - 大厂真题+面试技巧
  • 🛠️ 渗透测试工具包 - 常用工具+使用教程
  • 🎯 靶场搭建全套方案 - DVWA、SQLi-Labs等实战环境

如何获取?

  • 微信搜索公众号:[智榜样网络安全学习中心]
  • 关注后添加老师微信
  • 即可免费领取全套学习资料

💡 适合人群:网络安全初学者、转行人员、在校学生、想要提升实战能力的从业者

我们在网络安全培训领域深耕多年,专注红蓝对抗实战与就业指导,帮助数百名学员成功入行!

更多推荐