在安全测试领域,SQL注入是一种常见的攻击方式,通过应用程序的输入执行恶意SQL查询,从而绕过认证和授权,可以窃取、篡改或破坏数据库中的数据。作为安全测试学习者,如果你要练习SQL注入,在未授权情况下直接去攻击一个网站是违法的,安全测试靶场则提供了一个安全实验环境,可以放心地进行攻防实战操作,提升自己的技能。本文就给大家详细讲解如何在windows、docker环境下搭建sqli-labs靶场!
在安全测试领域,SQL注入是一种常见的攻击方式,通过应用程序的输入执行恶意SQL查询,从而绕过认证和授权,可以窃取、篡改或破坏数据库中的数据。作为安全测试学习者,如果你要练习SQL注入,在未授权情况下直接去攻击一个网站是违法的,安全测试靶场则提供了一个安全实验环境,可以放心地进行攻防实战操作,提升自己的技能。本文就给大家详细讲解如何在windows、docker环境下搭建sqli-labs靶场!
一、SQLi-labs简介
SQLi-labs是由印度程序员开发,专门用于练习SQL注入的靶场,其中包含各种注入姿势,并适用于GET和POST等场景。主要包含:基础错误注入、报错注入、盲注、MySQL读写文件、更新查询注入、插入查询注入、Header头部注入、二次注入、绕过WAF、绕过addslashes函数、绕过mysql_real_escape_string函数、堆叠注入。
二、Windows搭建SQLi-labs靶场
1、基于PHPStudy进行靶场搭建,关于PHPStudy下载及安装,看我之前写过的文章 http://testingpai.com/article/1708419594887
2、下载SQLi-labs,源码下载链接:https://github.com/Audi-1/sqli-labs.git
3、下载后解压对应文件,并放入phpstudy安装目录的WWW目录下
4、打开浏览器,输入“http://windows服务器ip/sqli-labs-master/” ,可以看到如下的界面,点击“Setup/reset Database for labs”,会出现Access denied的提示。这里我们要先配置下数据库文件。
5、打开sqli-labs-master\sql-connections\db-creds.inc,配置dbuser、dbpass为phpstudy中数据库的用户名和密码信息,修改后保存保存文件。
6、再去刷新刚报错界面,出现如下图片,则表示搭建成功。
三、Docker快速搭建SQLi-labs靶场
1、请先确保已经安装好了Docker。Docker可以快速实现搭建,不需手动配置;且安全测试靶场环境相互独立。是安全测试学习者非常青睐的一种部署方式。
2、执行:docker search sqli-labs。从docker hub上搜索sqli-labs,选择一个STARS最高的来下载。
3、执行:docker pull acgpiano/sqli-labs , 从docker hub拉取对应sqli-labs镜像。
3、执行:docker run -dt --name sqli-labs -p 81:80 --rm acgpiano/sqli-labs, 将镜像运行为容器
-
-d 表示后台运行,返回容器id
-
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-
--name sqli-labs 将容器命名为sqli-labs
-
-p 81:80 映射外部访问端口
-
--rm 是指当其关闭后删除开启的资源
-
acgpiano/sqli-labs 镜像名
4、浏览器输入:docker所在服务器ip:81, 出现如下界面
5、点击Setup/reset Databse for labs,创建数据库成功则表示靶场部署成功。接下来即可开始SQL注入练习。
学无止境,行以致远!