SQL 注入之 Windows/Docker 环境 SQLi-labs 靶场搭建!

在安全测试领域,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注入练习。

图片

学无止境,行以致远!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出 -- 系统架构之负载均衡Nginx实现高可用

一、Nginx的高可用 线上如果采用单个节点的方式部署Nginx,难免会出现天灾人祸,比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈,夸张了。但实际生产环境中确实存在隐患问题,由于Nginx作为整个系统的网关层接入…

安卓手机APP开发的音频和视频概述

安卓手机APP开发的音频和视频概述 目录 概述 Jetpack Media3 回放组件 Media3 MediaSession MediaSessionService MediaController MeidaBrowser Media3 Exoplayer 编辑组件 Media3 Transformer Effects EditedMediaItem UI组件 Media3 UI Jetpack MediaRouter…

anylabeling使用和安装

源码地址: git clone https://github.com/vietanhdev/anylabeling.git Auto Labeling with Segment Anything Youtube Demo: https://www.youtube.com/watch?v5qVJiYNX5KkDocumentation: https://anylabeling.nrl.ai Features: Image annotation for polygon, r…

利用Leaflet + React:构建WEBGIS

React是 Facebook 开发的一个开源库,用于构建用户界面。就其本身而言,Leaflet是一个用于将地图发布到网络的JavaScript 库。这两个工具的组合很简单,允许您创建动态网络地图。在本文中,我们将看到这种组合的一些特征以及一些简单的…

查找题(二分解法c++)

文章目录 【深基13.例1】查找题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示代码如下: 【深基13.例1】查找 题目描述 输入 n n n 个不超过 1 0 9 10^9 109 的单调不减的(就是后面的数字不小于前面的数字)非负整数 a 1 , a…

数据结构DAY3--栈与队列

栈: 是一种只能从一端操作的表,规则为先进后出。 主要操作步骤为:1.建立相关结构体 2.建立栈 3.增加栈 4.获得栈顶值 5.删除 6.修改 7.销毁 1.建立两个结构体 一个为链栈,一个为结点,链栈包括栈头(指针…

多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络…

java数据结构与算法刷题-----LeetCode367. 有效的完全平方数

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 自实现Math.sqrt()函数:牛顿迭代法 自实现Math.sqrt(…

Redis单线程 VS 多线程

一、Redis 为什么选择单线程? 这种说法其实并不严谨,为什么这么说呢? Redis的版本有很多 3.x、4.x、6.x,版本不同架构也不同的,不限定版本问是否单线程也是不太严谨。 版本3.x,最早版本,也就…

项目架构MVC,DDD学习

写在前面 本文一起看下项目架构DDD,MVC相关的内容。 1:MVC 不管我们做什么项目,自己想想其实只是做了三件事,如下: 其实,这三件事完全在一个类中做完也可以可以正常把项目完成的,就像下面这…

【MacBook系统homebrew镜像记录】

安装 使用Homebrew 国内源安装脚本,贼方便: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"切换至清华大学镜像源: 命令合并: 分别切换了 brew.git、 homebrew-core.git、 homebrew-…

逆向案例十二——看准网企业信息json格式的信息

网址:【全国公司排行|排名榜单|哪家好】-看准网 打开开发者工具——刷新——网络——XHR——下滑页面加载新的页面——找到数据包 发现参数加密,返回的数据也进行了加密 按关键字在下方搜索 kiv进入第一个js文件 ctrlf打开文件里面的搜索框继续搜kiv找到…

12.手写JavaScript bind方法

一、核心思想 bind相比apply和call引入了闭包的思想,重点是正确找到this和arguments 二、代码实现 /*** 手写bind* param {Function} o 函数* param {Array} ...args1 数组* return 根据具体情况考虑*/ function Fn(a,b,c,d){console.log("this.name:"…

Java 面试宝典:Redis 的线程模型是怎么样的?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站:https://www.skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 Redis 的线程模型其实是分两块的: Redis 6.0 …

前端开发语言有那些?

前端开发语言有那些? 1、html 超文本标记语言:构建前端网页的基本结构,就象人的骨架一样。 2、css 层叠样式表:控制网页的样式和布局,就象人需要穿各种服式展现不同风采。 3、javascript 简称 JS 动态脚本语言&#x…

阿里面试总结

ThreadLocal 线程变量存放在当前线程变量中,线程上下文中,set将变量添加到threadLocals变量中 Thread类中定义了两个ThreadLocalMap类型变量threadLocals、inheritableThreadLocals用来存储当前操作的ThreadLocal的引用及变量对象,把当前线程…

gcc/g++:预编译阶段嵌入头文件并完成替换

预编译阶段嵌入头文件并完成替换首先需要找到需要包含头文件的位置,然后进行引入。 示例: 1)用户头文件 /*brief design and implements of demo-for-precompile.author wenxuanpeiemail 15873152445163.com(query for any question here) …

括号串(Deque)

题目 import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();char[] c sc.nextLine().toCharArray();Deque…

Prompt提示词——常见的Prompt框架

以下是一些常见的Prompt框架,包括它们的原理、功能、使用场景、优缺点以及示例: BROKE框架: 原理:BROKE是一个结合了OKR(Objectives and Key Results)方法论的框架,通过提供背景、角色、目标、关…

柒拾贰- tushare 模拟策略交易 (三)

书接上两回 柒拾- tushare 模拟策略交易 (一) 柒拾壹- tushare 模拟策略交易 (二) 开始 终于我们可以可以来进行模拟了 复杂 的我不会,所以就写个最简单的策略吧: 买入条件 比两年前是上升的比一年前…