【实战靶场】基于 Docker 快速搭建 MySQL 与 MSSQL 漏洞复现环境及 DataGrip 避坑指南
--- title: 【实战靶场】基于 Docker 快速搭建 MySQL 与 MSSQL 漏洞复现环境及 DataGrip 避坑指南 tags: - 网络安全 - SQL注入 - Docker - MySQL - MSSQL categories: - Web安全 - 靶场搭建 --- # 【实战靶场】基于 Docker 快速搭建 MySQL 与 MSSQL 漏洞复现环境及 DataGrip 避坑指南 在学习 Web 安全与 SQL 注入SQLi时拥有一个快速部署、随用随删的数据库靶场环境至关重要。本文记录在 Windows 环境下使用 **Docker** 快速搭建 **MySQL 5.7** 与 **MSSQL 2019 (SQL Server)** 测试环境的全流程以及使用 **DataGrip** 连接时的常见避坑记录。 --- ## 目录 1. [一、MySQL 靶场快速搭建与持久化挂载](#1) 2. [二、MSSQL 2019 靶场搭建与验证](#2) 3. [三、DataGrip 图形化连接与配置](#3) 4. [四、高频报错与踩坑总结重点复盘](#4) --- span id1/span ## 一、MySQL 靶场快速搭建与持久化挂载 ### 1. 准备初始化数据 (init.sql) 在本地新建工作目录如 C:\sqli-lab创建 init.sql 文件并写入测试数据 sql CREATE DATABASE IF NOT EXISTS sqli_lab; USE sqli_lab; -- 创建用户表 CREATE TABLE IF NOT EXISTS users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50), password VARCHAR(50), email VARCHAR(100), role VARCHAR(20) DEFAULT user ); -- 插入测试数据 INSERT INTO users (username, password, email, role) VALUES (admin, admin123, adminlab.com, admin), (alice, alice456, alicelab.com, user), (bob, bob789, boblab.com, user), (charlie, charlie0, charlielab.com, user), (root, root321, rootlab.com, admin); -- 创建敏感密钥表模拟 Flag CREATE TABLE IF NOT EXISTS secrets ( id INT PRIMARY KEY, secret_key VARCHAR(100) ); INSERT INTO secrets VALUES (1, FLAG{sqli_is_fun}), (2, FLAG{never_trust_user_input});2. Docker 启动并挂载自动执行利用 MySQL 官方镜像特性将 SQL 文件挂载至/docker-entrypoint-initdb.d/目录容器初次启动时会自动执行建库建表PowerShell# PowerShell 环境 docker run -d --name mysql-lab -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot -v ${PWD}/init.sql:/docker-entrypoint-initdb.d/init.sql mysql:5.73. 数据验证PowerShelldocker exec -it mysql-lab mysql -uroot -proot -e USE sqli_lab; SELECT * FROM secrets;二、MSSQL 2019 靶场搭建与验证1. 启动 MSSQL 容器⚠️密码策略提醒MSSQL 对管理员sa密码有强制复杂度要求至少 8 位包含大小写字母、数字和特殊字符。PowerShelldocker run -d --name mssql-lab -e ACCEPT_EULAY -e SA_PASSWORDYourStrongPassw0rd -p 1433:1433 [mcr.microsoft.com/mssql/server:2019-latest](https://mcr.microsoft.com/mssql/server:2019-latest)2. 命令行快速初始化数据在新版 MSSQL 容器中sqlcmd工具位于/opt/mssql-tools18/bin/sqlcmd需加-C参数信任自签名证书PowerShelldocker exec -it mssql-lab /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P YourStrongPassw0rd -C -Q CREATE DATABASE sqli_lab; GO USE sqli_lab; GO CREATE TABLE users ( id INT PRIMARY KEY IDENTITY(1,1), username NVARCHAR(50), password NVARCHAR(50), role NVARCHAR(20) DEFAULT user ); CREATE TABLE secrets ( id INT PRIMARY KEY, secret_key NVARCHAR(100) ); INSERT INTO secrets VALUES (1, NFLAG{mssql_is_powerful}); 三、DataGrip 图形化连接与配置1. 连接 MySQLHost:localhostPort:3306User:rootPassword:rootDatabase:sqli_lab2. 连接 MSSQL (SQL Server)Host:localhostPort:1433User:saPassword:YourStrongPassw0rdDatabase:sqli_lab⚠️ 核心避坑SSL 证书切换到Advanced (高级)标签页将trustServerCertificate改为true否则测试连接会因自签名证书校验失败而报错。四、高频报错与踩坑总结重点复盘坑点 1bind: Only one usage of each socket address is normally permitted原因本机已运行了本地 MySQL导致3306端口被占用。解决办法方案 A更改宿主机映射端口为3307-p 3307:3306。方案 B使用netstat -ano | findstr :3306查出占用进程的 PID 并终止。坑点 2挂载了init.sql但数据库依然为空原因容器如果不是“初次创建”或数据卷已存在残留不会重新触发/docker-entrypoint-initdb.d/脚本。解决办法先彻底删除旧容器docker rm -f mysql-lab然后再重新运行启动命令。坑点 3MSSQL 执行报错Could not find stored procedure GO原因GO是终端工具如sqlcmd的批处理分隔符并非标准 SQL 语法。在 DataGrip / DBeaver 等图形化工具中直接写 SQL 语句并以分号;结尾即可不需要输入GO。总结通过 Docker 容器化方案我们可以分钟级拉起隔离、干净的漏洞测试环境。结合 DataGrip 的智能补全与语法检查能大幅提升 SQL 注入练习和脚本编写的效率。

相关新闻

LarkXR 十年云渲染,让3D触手可及

LarkXR 十年云渲染,让3D触手可及

十年,我们改变了3D世界的打开方式2016年,"大众创业、万众创新"的浪潮正席卷而来。那一年,我做了一个决定——离开工作了11年的惠普,和朋友一起从零开始,创立了平行云。那时候,"云渲染"…

2026/10/16 19:21:52 阅读更多 →
Ryujinx 资源管理太费劲?用 RyuSAK 把固件、密钥、着色器一次配齐

Ryujinx 资源管理太费劲?用 RyuSAK 把固件、密钥、着色器一次配齐

Ryujinx 资源管理太费劲?用 RyuSAK 把固件、密钥、着色器一次配齐 【免费下载链接】RyuSAK 项目地址: https://gitcode.com/gh_mirrors/ry/RyuSAK 先讲一个被资源劝退的夜晚 如果你玩过 Ryujinx,多半经历过这样的夜晚:游戏装好了&am…

2026/10/17 8:51:33 阅读更多 →
2026年国内梯级链制造领域现有主要供应厂商公开信息整理

2026年国内梯级链制造领域现有主要供应厂商公开信息整理

2026年国内梯级链制造领域现有主要供应厂商公开信息整理2026年梯级链供应市场的行业现状与用户需求近年来,梯级链作为电扶梯核心机械配件,在多个公共交通与商业领域应用广泛,市场对扶梯链条的稳定性与适配性要求不断提升。不同需求方在寻找工…

2026/10/18 11:59:09 阅读更多 →

最新新闻

IM系统用户管理子服务架构设计与踩坑实践:从表结构到缓存策略

IM系统用户管理子服务架构设计与踩坑实践:从表结构到缓存策略

做IM系统,用户管理子服务往往是看起来最简单、坑却最多的那一块。很多人一开始会觉得,无非就是注册、登录、改个昵称、拉个好友列表,有什么好写的?但真正上手做才发现,一个IM系统里最基础的用户服务,牵扯到…

2026/10/19 22:03:35 阅读更多 →
DUT-OMRON数据集上的U-Net二值分割实战:边缘鲁棒与工业落地

DUT-OMRON数据集上的U-Net二值分割实战:边缘鲁棒与工业落地

简介:本资源是一套面向深度学习初学者与图像分割实践者的Unet多尺度分割实战项目,聚焦二值图像分割任务,特别适配DUT-OMRON数据集的端到端训练与推理需求。压缩包共2000个文件,主体为1979张PNG格式的训练/测试图像及对应mask&…

2026/10/19 22:03:35 阅读更多 →
XXE漏洞剖析:从XML外部实体注入到文件读取与SSRF防御

XXE漏洞剖析:从XML外部实体注入到文件读取与SSRF防御

大概在五年前做某次授权测试,目标系统有个不起眼的文件上传接口,响应报文里带着一段 XML 结构。当时随手改了改请求体,把实体声明换成了外部实体,结果直接把服务器上的/etc/passwd读了出来。那是我第一次真正意识到 XXE&#xff0…

2026/10/19 22:02:34 阅读更多 →
编译通过≠代码健康:C++静态检测原理与工具落地指南

编译通过≠代码健康:C++静态检测原理与工具落地指南

编译通过不等于代码健康:C静态检测到底在查什么我做C开发这些年,越来越觉得一个道理:编译器不报错,只是说你的代码符合语法和类型规则,它压根不关心你的逻辑是不是对的、指针是不是悬空的、资源有没有泄漏。很多问题要…

2026/10/19 22:02:34 阅读更多 →
基于Prometheus的MySQL自适应优化系统:从手工调参到自动闭环

基于Prometheus的MySQL自适应优化系统:从手工调参到自动闭环

1. 起因:静态参数与动态负载之间的拧巴 我维护的一套订单查询系统,跑在两个8C16G的实例上,平时QPS稳定在两千左右,配置也自认为调得“差不多了”。某天凌晨两点多,告警平台连续弹了三条: Threads_connecte…

2026/10/19 22:01:31 阅读更多 →
基于Python实现可靠数据传输协议:从停等到滑动窗口的完整课设指南

基于Python实现可靠数据传输协议:从停等到滑动窗口的完整课设指南

简介:这是计算机网络课程设计场景下的一份Python实现资源包,围绕UDP设计可靠数据传输协议,完整覆盖停等协议、GBN和SR的改进思路。内容对应实验要求,包括单向可靠传输、丢包模拟、双向数据传输以及基于协议的C/S文件传输应用&…

2026/10/19 22:01:31 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →