Web Security Academy 第四关:SQL 注入查询 MySQL / SQL Server 版本

大家好,本篇是 Web Security Academy 第四关 超详细图文教程,每一步操作、页面响应、请求包都和你的截图 1:1 对应,跟着做直接通关。

另外,我之前已经发布过 SQL Server数据库基础、注入语法、版本查询 的文章,对 SQL Server不熟悉的朋友可以先去我主页看那篇补课,本文专注靶场实战。


关卡信息

  • 关卡名称:SQL injection attack, querying the database type and version on MySQL and Microsoft
  • 注入点:商品分类 category 参数
  • 数据库:MySQL
  • 目标:获取版本字符串 8.0.42-0ubuntu0.20.04.1
  • 难度:入门

1. 关卡初始页面

打开靶场进入第四关首页。页面顶部提示:Make the database retrieve the string: '8.0.42-0ubuntu0.20.04.1'

页面下方是商品列表,分类包括:All、Accessories、Clothing, shoes and accessories、Corporate gifts、Food & Drink、Gifts。

确认注入点在商品分类筛选的 category 参数。


2. 正常访问分类页面

直接点击分类 Accessories,页面正常加载,无报错。

将URL:/filter?category=Accessories'

页面并未报错但商品信息全部没了,并且展示了Accessories'

存在注入点,


3. 正常请求包

请求包内容:

响应状态:HTTP/2 200 OK,页面正常返回。


4. ORDER BY 3 测试字段数

操作:在参数后构造语句测试字段数量

plaintext

复制代码
category=' order by 3--

页面返回:Internal Server Error(500 错误)

说明原查询字段数 小于 3。


5. ORDER BY 3 报错请求包

请求包:

plaintext

复制代码
GET /filter?category='%20order%20by%203-- HTTP/1.1

响应状态:HTTP/2 500 Internal Server Error确认字段数不满足 3 列。


6. ORDER BY 2 测试字段数

操作:

plaintext

复制代码
category=' order by 2--

页面正常显示商品,无报错。

结论:原查询一共 2 个字段。


7. UNION SELECT 1,2 测试回显位

操作:确认字段数后,测试回显位置

plaintext

复制代码
category=-1' union select 1,2--

页面成功显示数字 1、2,说明两个字段都可回显。


8. 构造版本查询 Payload

操作:使用 MySQL 全局变量 @@version 查询版本

plaintext

复制代码
category=-1' union select @@version,2--

页面直接回显:8.0.42-0ubuntu0.20.04.1

顶部显示:Congratulations, you solved the lab! 关卡状态变为 Solved,通关成功。


9. 通关成功请求包

请求包:

plaintext

复制代码
GET /filter?category=-1%27%20union%20select%20@@version,2-- HTTP/2

响应状态:HTTP/2 200 OK页面成功返回 MySQL 完整版本。


核心知识点总结

  1. 注入判断:单引号触发 ,确认字符型注入
  2. 字段判断:ORDER BY 2 正常、3 报错 → 2 个字段
  3. MySQL 版本查询:@@version / VERSION()
  4. UNION 注入:字段数对齐、用 -1' 清空原结果
  5. 注释符:-- 注释后续语句

安全防护建议

  1. 使用参数化查询 / 预编译语句
  2. 限制数据库账号权限,禁止读取敏感系统变量
  3. 输入过滤与 WAF 防护
相关推荐
誰能久伴不乏1 小时前
桌面客户端的运行日志系统:SQLite 分块 + 独立写线程 + 文本降级
数据库·c++·qt·架构·sqlite
2401_896732137 小时前
MySQL小笔记
mysql
程序员清风8 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
正在走向自律9 小时前
数据集成产品的技术底座:从日志解析原理到 KFS 同步链路搭建(含建表与增删改查完整代码)
数据库·oracle·信创·数据集成·国产数据库·kingbasees·全量+增量同步
程序员塔塔喵9 小时前
【MySQL篇|第七篇】MySQL事务
数据库·mysql·mysql事务
独隅10 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_10 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
数字新视界12 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB12 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
为思念酝酿的痛12 小时前
MySQL的操作
数据库·mysql